Module Base.Hash.Builtin

include Hash_intf.Builtin_hash_fold_intf
type state
type 'a folder = state ‑> 'a ‑> state
val hash_fold_nativeint : nativeint folder
val hash_fold_int64 : int64 folder
val hash_fold_int32 : int32 folder
val hash_fold_char : char folder
val hash_fold_int : int folder
val hash_fold_bool : bool folder
val hash_fold_string : string folder
val hash_fold_float : float folder
val hash_fold_unit : unit folder
val hash_fold_option : 'a folder ‑> 'a option folder
val hash_fold_list : 'a folder ‑> 'a list folder
val hash_fold_lazy_t : 'a folder ‑> 'a lazy_t folder
val hash_fold_ref_frozen : 'a folder ‑> 'a Base__.Import0.ref folder

Hash support for array and ref is provided, but is potentially DANGEROUS, since it incorporates the current contents of the array/ref into the hash value. Because of this we add a _frozen suffix to the function name.

Hash support for string is also potentially DANGEROUS, but strings are mutated less often, so we don't append _frozen to it.

Also note that we don't support bytes.

val hash_fold_array_frozen : 'a folder ‑> 'a array folder
include Hash_intf.Builtin_hash_intf
type hash_value
val hash_nativeint : nativeint ‑> hash_value
val hash_int64 : int64 ‑> hash_value
val hash_int32 : int32 ‑> hash_value
val hash_char : char ‑> hash_value
val hash_int : int ‑> hash_value
val hash_bool : bool ‑> hash_value
val hash_string : string ‑> hash_value
val hash_float : float ‑> hash_value
val hash_unit : unit ‑> hash_value