Module Mlpost__Hashcons

type 'a hash_consed = private {
hkey : int;
tag : int;
node : 'a;
}
type 'a t
val create : int -> 'a t

create n creates an empty table of initial size n. The table will grow as needed.

val clear : 'a t -> unit

Removes all elements from the table.

val hashcons : 'a t -> 'a -> 'a hash_consed

hashcons t n hash-cons the value n using table t i.e. returns any existing value in t equal to n, if any; otherwise, allocates a new one hash-consed value of node n and returns it. As a consequence the returned value is physically equal to any equal value already hash-consed using table t.

val iter : ('a hash_consed -> unit) -> 'a t -> unit

iter f t iterates f over all elements of t.

val stats : 'a t -> int * int * int * int * int * int

Return statistics on the table. The numbers are, in order: table length, number of entries, sum of bucket lengths, smallest bucket length, median bucket length, biggest bucket length.

module type HashedType = sig ... end
module type S = sig ... end
module Make : functor (H : HashedType) -> S with type key = H.t