sig
module MemoryFootprint :
sig
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val name : string
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unit
type data = int
val set : data -> unit
val get : unit -> data
val clear : unit -> unit
end
module type Cacheable =
sig
type t
val hash : Binary_cache.Cacheable.t -> int
val sentinel : Binary_cache.Cacheable.t
val equal :
Binary_cache.Cacheable.t -> Binary_cache.Cacheable.t -> bool
end
module type Result = sig type t val sentinel : Binary_cache.Result.t end
module Bool_Result : sig type t = bool val sentinel : t end
module Make_Symetric :
functor (H : Cacheable) ->
functor (R : Result) ->
sig
val clear : unit -> unit
val merge : (H.t -> H.t -> R.t) -> H.t -> H.t -> R.t
end
module Make_Asymetric :
functor (H : Cacheable) ->
functor (R : Result) ->
sig
val clear : unit -> unit
val merge : (unit -> R.t) -> H.t -> H.t -> R.t
end
module Make_Het :
functor (H1 : Cacheable) ->
functor (H2 : Cacheable) ->
functor (R : Result) ->
sig
val clear : unit -> unit
val merge : (unit -> R.t) -> H1.t -> H2.t -> R.t
end
end