CurryInfo: cpm-3.3.0 / CPM.Resolution.resolve

definition: Info
 
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: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
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: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_) |-> {ResolutionFailure,ResolutionSuccess}}
name: Info
 resolve
precedence: Info
 no precedence defined
result-values: Info
 {ResolutionFailure,ResolutionSuccess}
signature: Info
 CPM.Config.Config -> CPM.Package.Package -> CPM.LookupSet.LookupSet
-> ResolutionResult
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term