sig
  type solver
  val load :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Algo.Depsolver.solver
  val is_consistent : Cudf.universe -> Algo.Diagnostic.diagnosis
  val edos_install :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package -> Algo.Diagnostic.diagnosis
  val edos_coinstall :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list -> Algo.Diagnostic.diagnosis
  val edos_coinstall_prod :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list list -> Algo.Diagnostic.diagnosis list
  val trim :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.universe
  val trimlist :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list -> Cudf.package list
  val find_broken :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list
  val find_installable :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list
  val find_listbroken :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list -> Cudf.package list
  val find_listinstallable :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    Cudf.universe -> Cudf.package list -> Cudf.package list
  val univcheck :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?callback:(Algo.Diagnostic.diagnosis -> unit) ->
    ?explain:bool -> Cudf.universe -> int
  val univcheck_lowmem :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?callback:(Algo.Diagnostic.diagnosis -> unit) ->
    ?explain:bool -> Cudf.universe -> int
  val listcheck :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?callback:(Algo.Diagnostic.diagnosis -> unit) ->
    ?explain:bool -> Cudf.universe -> Cudf.package list -> int
  val dependency_closure :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?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:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?enc:Algo.Depsolver.enc -> Cudf.universe -> string
  type depclean_result =
      Cudf.package *
      (Cudf_types.vpkglist * Cudf_types.vpkg * Cudf.package list) list *
      (Cudf_types.vpkg * Cudf.package list) list
  val depclean :
    ?global_constraints:(Cudf_types.vpkglist * Cudf.package list) list ->
    ?callback:(Algo.Depsolver.depclean_result -> unit) ->
    Cudf.universe -> Cudf.package list -> Algo.Depsolver.depclean_result list
  type solver_result =
      Sat of (Cudf.preamble option * Cudf.universe)
    | Unsat of Algo.Diagnostic.diagnosis option
    | Error of string
  val dummy_request : Cudf.package
  val check_request :
    ?cmd:string ->
    ?criteria:string ->
    ?dummy:Cudf.package ->
    ?explain:bool -> Cudf.cudf -> Algo.Depsolver.solver_result
  val check_request_using :
    ?call_solver:(Cudf.cudf -> Cudf.preamble option * Cudf.universe) ->
    ?criteria:string ->
    ?dummy:Cudf.package ->
    ?explain:bool -> Cudf.cudf -> Algo.Depsolver.solver_result
  val installation_graph :
    solution:Cudf.universe ->
    Common.CudfAdd.Cudf_set.t * Common.CudfAdd.Cudf_set.t ->
    Defaultgraphs.ActionGraph.G.t
end