Dependency solver. Implementation of the Edos algorithms
the solver is an abstract data type associated to a universe
check if the given package can be installed in the universe
check if the give package list can be installed in the universe
univcheck check if all packages in the universe can be installed.
Since not all packages are directly tested for installation, if a packages
is installable, the installation might be empty. To obtain an installation
set for each installable packages, the correct procedure is to iter on the
list of packages.
listcheck ~callback:c solver l check if all packages in
l can be
Invariant : l is a subset of universe can be installed in the solver universe.
check_request check if there exists a solution for the give cudf document
if ?cmd is specified, it will be used to call an external cudf solver to
satisfy the request.
if ?criteria is specified it will be used as optimization criteria.
if ?explain is specified and there is no solution for the give request, the
result will contain the failure reason.
check_request, but allows to specify any function to call the
external solver. It should raise
Depsolver.Unsat on failure