sig
module N :
sig
type t =
(Rapids.package_id,
(Rapids.unit_id, Rapids.version_number * Rapids.release_number,
Rapids.glob)
Napkin.versioned)
Diagnosis.reason
type reason = Installability.N.t
end
type solver = SAT | Direct
val set_solver : Installability.solver -> unit
val get_solver : unit -> Installability.solver
val set_verifier : Installability.solver option -> unit
val get_verifier : unit -> Installability.solver option
val prepare :
Rapids.db ->
?log:(string -> unit) ->
indicator:Progress.indicator ->
?targets:Rapids.Package_set.t ->
available:Rapids.Package_set.t ->
unit ->
int * (Rapids.Package_set.elt -> Solver.M(N).var) *
(Solver.M(N).var -> Rapids.Package_set.elt) * Rapids.Package_set.t *
Solver.M(N).state * 'a list Pervasives.ref * int Pervasives.ref *
int Pervasives.ref * int Pervasives.ref
val check :
Rapids.db ->
?log:(string -> unit) ->
?preparation:int * (Rapids.Package_set.elt -> Solver.M(N).var) *
(Solver.M(N).var -> Rapids.Package_set.elt) *
Rapids.Package_set.t * Solver.M(N).state *
(Rapids.Package_set.elt * Installability.N.reason list) list
Pervasives.ref * int Pervasives.ref * int Pervasives.ref *
int Pervasives.ref ->
indicator:Progress.indicator ->
targets:Rapids.Package_set.t ->
available:Rapids.Package_set.t ->
unit ->
(Rapids.Package_set.elt, Rapids.Package_set.elt,
(Rapids.unit_id, Rapids.version_number * Rapids.release_number,
Rapids.glob)
Napkin.versioned)
Diagnosis.diagnosis
val check_together :
Rapids.db ->
?log:(string -> unit) ->
?preparation:int * (Rapids.Package_set.elt -> Solver.M(N).var) *
(Solver.M(N).var -> Rapids.Package_set.elt) *
Rapids.Package_set.t * Solver.M(N).state *
(Rapids.Package_set.elt list * Installability.N.reason list)
list Pervasives.ref * int Pervasives.ref *
int Pervasives.ref * int Pervasives.ref ->
indicator:Progress.indicator ->
targets:Rapids.Package_set.t ->
available:Rapids.Package_set.t ->
unit ->
(Rapids.Package_set.elt list, Rapids.Package_set.elt,
(Rapids.unit_id, Rapids.version_number * Rapids.release_number,
Rapids.glob)
Napkin.versioned)
Diagnosis.diagnosis
val install :
Rapids.db ->
?log:(string -> unit) ->
?preparation:int * (Rapids.Package_set.elt -> Solver.M(N).var) *
(Solver.M(N).var -> Rapids.Package_set.elt) *
Rapids.Package_set.t * Solver.M(N).state *
'a list Pervasives.ref * int Pervasives.ref *
int Pervasives.ref * int Pervasives.ref ->
indicator:Progress.indicator ->
targets:Rapids.Package_set.t ->
available:Rapids.Package_set.t ->
?known:Rapids.Package_set.t -> unit -> Rapids.Package_set.t
val abundance :
Rapids.db -> Rapids.Package_set.t -> Rapids.package_id option
val strong_dep :
Rapids.db ->
?is:Rapids.Package_set.t ->
?preparation:int * (Rapids.Package_set.elt -> Solver.M(N).var) *
(Solver.M(N).var -> Rapids.Package_set.elt) *
Rapids.Package_set.t * Solver.M(N).state *
'a list Pervasives.ref * int Pervasives.ref *
int Pervasives.ref * int Pervasives.ref ->
Rapids.Package_set.t -> Rapids.package_id -> Rapids.package_id -> bool
val trim : Rapids.db -> Rapids.Package_set.t -> Rapids.Package_set.t
end