HcHash-consing library.
The implementation is based on the paper Type-Safe Modular Hash-Consing by Jean-Christophe-Filliâtre and Sylvain Conchon.
The implementation should be multi-core safe.
The type of hash-consed values. The node field is the actual value and tag is a unique integer identifier.
module type S = sig ... endThe output signature of the various functors Make, MakeStrong, Fake and Mk.
Hash-consing module using Ephemeron.K1.Make as a back-end cache. Not thread-safe.
module Make_thread_safe (H : Hashtbl.HashedType) : S with type key = H.tHash-consing module using Ephemeron.K1.Make as a back-end cache. Thread-safe.
module Make_strong (H : Hashtbl.HashedType) : S with type key = H.tHash-consing module using Hashtbl.Make as a back-end cache. Not thread-safe.
module Make_strong_thread_safe (H : Hashtbl.HashedType) : S with type key = H.tHash-consing module using Hashtbl.Make as a back-end cache. Thread-safe.
Hash-consing module that does not perform hash-consing. This is useful to easily benchmark the impact of hash-consing without having to change your code too much: simply replace Make or Makestrong by Fake.
Reset the size that will be used to create a cache to its default value.
module type Cache = sig ... endThe type of custom cache modules.
Hash-consing module using a custom user-defined cache. Not thread-safe.