functor
(T : sig
type t
val dummy : Kind.Make.t
val name : string
val kind_name : Kind.Make.t -> string
end) ->
sig
type t
val dummy : Kind.Make.t
module Selection :
sig
type kind = t
type t
val ty : t Type.t
val empty : t
val is_empty : t -> bool
val add : kind -> how -> t -> t
val singleton : kind -> how -> t
val remove : kind -> t -> t
val iter : (kind -> how -> unit) -> t -> unit
val fold : (kind -> how -> 'a -> 'a) -> t -> 'a -> 'a
end
val create : T.t -> Kind.Make.t list -> Kind.Make.t
val value : Kind.Make.t -> T.t
exception DependencyAlreadyExists of string * string
val add_dependency : Kind.Make.t -> Kind.Make.t -> unit
val iter : (T.t -> 'a -> unit) -> 'a -> unit
val apply_in_order :
Kind.Make.Selection.t ->
Kind.Make.Selection.t -> (Kind.Make.t -> 'a -> 'a) -> 'a -> 'a
val iter_in_order :
Kind.Make.Selection.t ->
Kind.Make.Selection.t -> (T.t -> 'a -> unit) -> 'a -> unit
val fold_in_order :
Kind.Make.Selection.t ->
Kind.Make.Selection.t -> (T.t -> 'a -> 'a) -> 'a -> 'a
val number_of_applicants :
Kind.Make.Selection.t -> Kind.Make.Selection.t -> int option
val digest : unit -> Digest.t
val dump_dependencies :
?only:Kind.Make.Selection.t ->
?except:Kind.Make.Selection.t -> string -> unit
end