CurryInfo: cpm-3.3.0 / CPM.Resolution.resolve

definition:
 
resolve :: Config -> Package -> LookupSet -> ResolutionResult
resolve cfg pkg ls = case resolvedPkgs of
  Just pkgs -> ResolutionSuccess pkg (deleteBase pkgs)
  Nothing   -> ResolutionFailure labeledTree
 where
  labeledTree = labelConflicts cfg $ candidateTree pkg ls
  noConflicts = prune ((/= Nothing) . clConflict) labeledTree
  resolvedPkgs = maybeHead . map stPackages . filter stComplete . leaves
                           . mapTree clState $ noConflicts
  deleteBase   = filter (\p -> name p /= "base" ||
                           showVersion (version p) /= compilerBaseVersion cfg)
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Resolves the dependencies of a package using packages from a lookup set.
The base package of the current compiler is removed from the result set.
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_,_) |-> {ResolutionFailure,ResolutionSuccess}}
name:
 resolve
precedence:
 no precedence defined
result-values:
 {ResolutionFailure,ResolutionSuccess}
signature:
 CPM.Config.Config -> CPM.Package.Package -> CPM.LookupSet.LookupSet
-> ResolutionResult
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term