sig
  type solver
  val load : ?check:bool -> Cudf.universe -> Depsolver.solver
  val edos_install :
    ?global_constraints:bool ->
    Cudf.universe -> Cudf.package -> Diagnostic.diagnosis
  val edos_coinstall :
    ?global_constraints:bool ->
    Cudf.universe -> Cudf.package list -> Diagnostic.diagnosis
  val edos_coinstall_prod :
    ?global_constraints:bool ->
    Cudf.universe -> Cudf.package list list -> Diagnostic.diagnosis list
  val trim : ?global_constraints:bool -> Cudf.universe -> Cudf.universe
  val find_broken :
    ?global_constraints:bool -> Cudf.universe -> Cudf.package list
  val univcheck :
    ?global_constraints:bool ->
    ?callback:(Diagnostic.diagnosis -> unit) -> Cudf.universe -> int
  val listcheck :
    ?global_constraints:bool ->
    ?callback:(Diagnostic.diagnosis -> unit) ->
    Cudf.universe -> Cudf.package list -> int
  val dependency_closure :
    ?maxdepth:int ->
    ?conjunctive:bool ->
    Cudf.universe -> Cudf.package list -> Cudf.package list
  val reverse_dependencies :
    Cudf.universe -> Cudf.package list Common.CudfAdd.Cudf_hashtbl.t
  val reverse_dependency_closure :
    ?maxdepth:int -> Cudf.universe -> Cudf.package list -> Cudf.package list
  type enc = Cnf | Dimacs
  val output_clauses :
    ?global_constraints:bool -> ?enc:Depsolver.enc -> Cudf.universe -> string
  val check_request : Cudf.cudf_doc -> Diagnostic.diagnosis
end