CurryInfo: cpm-3.3.0 / CPM.Diff.API.compareModulesFromPackageAndDir

definition:
 
compareModulesFromPackageAndDir :: Config -> Repository -> GC.GlobalCache
                                -> String -> String -> Version -> Maybe [String]
                                -> ErrorLogger [(String, Differences)]
compareModulesFromPackageAndDir cfg repo gc dirA nameB verB onlyMods = do
  baseTmp <- liftIOEL getBaseTemp
  pkgB <- GC.tryFindPackage gc nameB verB
  pkgA <- loadPackageSpec dirA
  GC.copyPackage cfg pkgB baseTmp
  liftIOEL $ copyDirectory dirA (baseTmp </> packageId pkgA)
  compareModulesInDirs cfg repo gc (baseTmp </> packageId pkgA)
                       (baseTmp </> packageId pkgB) onlyMods
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Compares a package version from a directory to a package version from the
global package cache.

@param cfg - the CPM configuration
@param repo - the central package index
@param gc - the global package cache
@param dirA - the directory containing package version A
@param nameB - the name of package version B
@param verB - the version of package version B
@param onlyMods - a list of modules to compare
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_,_,_,_,_,_) |-> _}
name:
 compareModulesFromPackageAndDir
precedence:
 no precedence defined
result-values:
 _
signature:
 CPM.Config.Config -> CPM.Repository.Repository
-> CPM.PackageCache.Global.GlobalCache -> String -> String
-> (Prelude.Int, Prelude.Int, Prelude.Int, Prelude.Maybe String)
-> Prelude.Maybe [String]
-> CPM.ErrorLogger.ErrorLogger [(String, (Prelude.Maybe (Difference String), [Difference AbstractCurry.Types.CFuncDecl], [Difference AbstractCurry.Types.CTypeDecl], [Difference AbstractCurry.Types.COpDecl]))]
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term