Module Hash.Builtin

val hash_fold_nativeint : nativeint folder @@ portable
val hash_fold_int64 : int64 folder @@ portable
val hash_fold_int32 : int32 folder @@ portable
val hash_fold_char : char folder @@ portable
val hash_fold_int : int folder @@ portable
val hash_fold_bool : bool folder @@ portable
val hash_fold_string : string folder @@ portable
val hash_fold_float : float folder @@ portable
val hash_fold_unit : unit folder @@ portable
val hash_fold_option : 'a. 'a folder -> 'a option folder @@ portable
val hash_fold_or_null : 'a folder -> 'a Basement.Or_null_shim.t folder @@ portable
val hash_fold_list : 'a. 'a folder -> 'a list folder @@ portable
val hash_fold_lazy_t : 'a folder -> 'a lazy_t folder @@ portable
val hash_fold_ref_frozen : 'a folder -> 'a ref folder @@ portable

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 @@ portable
val hash_nativeint : nativeint -> hash_value @@ portable
val hash_int64 : int64 -> hash_value @@ portable
val hash_int32 : int32 -> hash_value @@ portable
val hash_char : char -> hash_value @@ portable
val hash_int : int -> hash_value @@ portable
val hash_bool : bool -> hash_value @@ portable
val hash_string : string -> hash_value @@ portable
val hash_float : float -> hash_value @@ portable
val hash_unit : unit -> hash_value @@ portable