Module Hashcons


module Hashcons: sig  end


type 'a hashed = {
   hkey : int;
   tag : int;
   node : 'a;
}

type 'a t = {
   mutable size : int;
   mutable data : 'a bucketlist array;
}

type 'a bucketlist =
| Empty
| Cons of 'a hashed * 'a bucketlist

val create : int -> 'a t
Parameters:
initial_size : int
val clear : 'a t -> unit
Parameters:
h : 'a t
val resize : 'a t -> unit
Parameters:
tbl : 'a t
val array_too_small : 'a t -> bool
Parameters:
h : 'a t
val add : 'a t -> int -> 'a hashed -> unit
Parameters:
h : 'a t
hkey : int
info : 'a hashed
val find : 'a t -> 'a -> int -> 'a hashed
Parameters:
h : 'a t
key : 'a
hkey : int
val gentag : unit -> int
val hashcons : 'a t -> 'a -> 'a hashed
Parameters:
h : 'a t
node : 'a
val mem : 'a t -> 'a -> bool
Parameters:
h : 'a t
node : 'a
val (===) : 'a -> 'a -> bool
val (=/=) : 'a -> 'a -> bool
Parameters:
x : 'a
y : 'a
val iter : ('a hashed -> 'b) -> 'a t -> unit
Parameters:
f : 'a hashed -> 'b
h : 'a t
val bucketlist_length : 'a bucketlist -> int
Parameters:
?? : 'a bucketlist
val stat : 'a t -> unit
Parameters:
h : 'a t
module type HashedType = sig  end
module type S = sig  end
module Make: functor (H : HashedType) -> sig  end