Module Hconsing.Make

Functor to create a hashconsing module from a module describing values.

Hashconsed values

This signature defines a hashconsing module, used to implement maximal sharing of hashconsed values.

Parameters

module H : HASHED

Signature

type t = H.elt

The type of value used.

val save_cache : unit -> unit

Saves the module's cache

val reinit_cache : unit -> unit

Reinitializes the module's cache

val make : t -> t

Hashcons a value t, either returning t, or a value equal to t that was hashconsed previously.

val elements : unit -> t list

Returns the list of all unique hashconsed elements.