sig
module type HashedType =
sig
type t
val equal : Hashcons.HashedType.t -> Hashcons.HashedType.t -> bool
val hash : Hashcons.HashedType.t -> int
val tag : int -> Hashcons.HashedType.t -> unit
end
module type S =
sig
type elt
val hashcons : Hashcons.S.elt -> Hashcons.S.elt
val mem : Hashcons.S.elt -> bool
val fresh_unique_id : unit -> int
val stats : unit -> int * int * int * int * int * int
end
module Make :
functor (X : HashedType) ->
sig
type elt = X.t
val hashcons : elt -> elt
val mem : elt -> bool
val fresh_unique_id : unit -> int
val stats : unit -> int * int * int * int * int * int
end
module MakeNonWeak :
functor (X : HashedType) ->
sig
type elt = X.t
val hashcons : elt -> elt
val mem : elt -> bool
val fresh_unique_id : unit -> int
val stats : unit -> int * int * int * int * int * int
end
end