`type 'a hobj = private {`

1. `obj : 'a;`
2. `tag : int;`
   (*

   Unique id for this object

   *)
3. `hcode : int;`
   (*

   Hash code for this object

   *)

`}`

The type `t hobj` represents hashed objects of type `t`. A hashed object contains a unique tag and a hash code.

`type 'a t = 'a hobj`

A synonym for convenience

`val compare : 'a hobj -> 'a hobj -> int`

Comparison on the tags

`module type Table = sig ... end`

Hashcons tables

`module MakeTable (HT : BatHashtbl.HashedType) : Table with type key = HT.t`
`module H : sig ... end`

Hashing utilities