# Module BatHashcons

    module BatHashcons: sig .. end

Hash consing of data structures

    type 'a hobj = private {

`` | `obj : `'a`;`
`` | `tag : `int`;` | `(*` | Unique id for this object | `*)`
`` | `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: functor (HT : BatHashtbl.HashedType) -> Table  with type key = HT.t

    module H: sig .. end

Hashing utilities