module Hstring:Hash-consed stringssig..end
Hash-consing is a technique to share values that are structurally equal. More details on Wikipedia and here.
This module provides an easy way to use hash-consing for strings.
typet =string Hashcons.hash_consed
val make : string -> tmake s builds ans returns a hash-consed string from s.val view : t -> stringview hs returns the string corresponding to hs.val equal : t -> t -> boolequal x y returns true if x and y are the same hash-consed string
(constant time).val compare : t -> t -> intcompares x y returns 0 if x and y are equal, and is unspecified
otherwise but provides a total ordering on hash-consed strings.val hash : t -> inthash x returns the integer (hash) associated to x.val empty : t"") hash-consed string.val list_assoc : t -> (t * 'a) list -> 'alist_assoc x l returns the element associated with x in the list of
pairs l.Not_found if there is no value associated with x in the list l.val list_mem_assoc : t -> (t * 'a) list -> boolHstring.list_assoc, but simply returns true if a binding exists, and
false if no bindings exist for the given key.val list_mem : t -> t list -> boollist_mem x l is true if and only if x is equal to an element of l.val list_mem_couple : t * t -> (t * t) list -> boollist_mem_couple (x,y) l is true if and only if (x,y) is equal to an
element of l.val compare_list : t list -> t list -> intcompare_list l1 l2 returns 0 if and only if l1 is equal to l2.val print : Format.formatter -> t -> unitmodule H:Hashtbl.Swith type key = t
module HSet:Set.Swith type elt = t
module HMap:Map.Swith type key = t