sig
val memory_footprint_var_name : string
val cache_size : int
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 Symmetric_Binary :
functor (H : Cacheable) (R : Result) ->
sig
val clear : unit -> unit
val merge : (H.t -> H.t -> R.t) -> H.t -> H.t -> R.t
end
module Binary_Predicate :
functor (H0 : Cacheable) (H1 : Cacheable) ->
sig
val clear : unit -> unit
val merge : (H0.t -> H1.t -> bool) -> H0.t -> H1.t -> bool
end
module Symmetric_Binary_Predicate :
functor (H0 : Cacheable) ->
sig
val clear : unit -> unit
val merge : (H0.t -> H0.t -> bool) -> H0.t -> H0.t -> bool
end
module Arity_One :
functor (H : Cacheable) (R : Result) ->
sig val clear : unit -> unit val merge : (H.t -> R.t) -> H.t -> R.t end
module Arity_Two :
functor (H0 : Cacheable) (H1 : Cacheable) (R : Result) ->
sig
val clear : unit -> unit
val merge : (H0.t -> H1.t -> R.t) -> H0.t -> H1.t -> R.t
end
module Arity_Three :
functor
(H0 : Cacheable) (H1 : Cacheable) (H2 : Cacheable) (R : Result) ->
sig
val clear : unit -> unit
val merge :
(H0.t -> H1.t -> H2.t -> R.t) -> H0.t -> H1.t -> H2.t -> R.t
end
end