sig
  val resolve :
    ?verbose:bool ->
    OpamState.state ->
    OpamTypes.user_action ->
    OpamTypes.atom OpamTypes.request ->
    (OpamTypes.solution, string) OpamTypes.result
  val apply :
    ?force:bool ->
    OpamState.state ->
    OpamTypes.user_action -> OpamTypes.solution -> OpamTypes.solver_result
  val resolve_and_apply :
    ?force:bool ->
    OpamState.state ->
    OpamTypes.user_action ->
    OpamTypes.atom OpamTypes.request -> OpamTypes.solver_result
  val check_solution : OpamState.state -> OpamTypes.solver_result -> unit
  val eq_atom : OpamTypes.name -> OpamTypes.version -> OpamTypes.atom
  val atom_of_package : OpamTypes.package -> OpamTypes.atom
  val atoms_of_packages : OpamTypes.package_set -> OpamTypes.atom list
  val eq_atoms_of_packages : OpamTypes.package_set -> OpamTypes.atom list
  val atoms_of_names :
    ?permissive:bool ->
    OpamState.state -> OpamTypes.name_set -> OpamTypes.atom list
  val check_availability : OpamState.state -> OpamTypes.atom list -> unit
  val sum : OpamTypes.stats -> int
end