Module Installability


module Installability: sig .. end

module N: sig .. end

type solver =
| SAT
| Direct
val set_solver : solver -> unit
val get_solver : unit -> solver
val set_verifier : solver option -> unit
val get_verifier : unit -> 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 * 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 * 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