functor (Datatype : Datatype.S) ->
functor
(State : sig
type t = Datatype.t
val create : unit -> t
val clear : t -> unit
val get : unit -> t
val set : t -> unit
val clear_some_projects : (project -> bool) -> t -> bool
end) ->
functor (Info : INFO) ->
sig
val self : t
val select : Kind.how -> selection -> selection
val depend : t -> unit
val name : string
val mark_as_computed : ?project:project -> unit -> unit
val is_computed : ?project:project -> unit -> bool
val do_not_save : unit -> unit
module Datatype :
sig
type t = Datatype.t
val descr : Unmarshal.t
val copy : t -> t
val name : string
val register_comparable :
?compare:(t -> t -> int) ->
?equal:(t -> t -> bool) -> ?hash:(t -> int) -> unit -> unit
val is_comparable_set : unit -> bool
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val mem_project : ((project -> bool) -> t -> bool) option ref
end
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unit
end