BatHashcons

`sig
type 'a hobj = private { obj : 'a; tag : int; hcode : int; }
type 'a t = 'a BatHashcons.hobj
val compare : 'a BatHashcons.hobj -> 'a BatHashcons.hobj -> int
module type Table =
sig
type key
type t
val create : int -> BatHashcons.Table.t
val clear : BatHashcons.Table.t -> unit
val hashcons :
BatHashcons.Table.t ->
BatHashcons.Table.key -> BatHashcons.Table.key BatHashcons.hobj
val iter :
(BatHashcons.Table.key BatHashcons.hobj -> unit) ->
BatHashcons.Table.t -> unit
end
module MakeTable :
functor (HT : BatHashtbl.HashedType) ->
sig
type key = HT.t
type t
val create : int -> t
val clear : t -> unit
val hashcons : t -> key -> key hobj
val iter : (key hobj -> unit) -> t -> unit
end
module H :
sig
val hc0_ : int -> int
val hc0 : 'a BatHashcons.hobj -> int
val hc1_ : int -> int -> int
val hc1 : 'a BatHashcons.hobj -> int -> int
end
end`