Module type S.SOLVER

type t
type selections
type diagnostics
val solve : t -> OpamPackage.Name.t list -> (selections, diagnostics) Stdlib.result

solve t package_names finds a compatible set of package versions that includes all packages in package_names and their required dependencies.

val packages_of_result : selections -> OpamPackage.t list
val diagnostics : ?verbose:bool -> diagnostics -> string

diagnostics d is a message explaining why d failed, generated by performing another solve which doesn't abort on failure.