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