package containers

  1. Overview
  2. Docs

Hash combinators

Combination of hashes based on the Murmur Hash (64 bits). See this page

Definitions

type t = int

A hash value is a positive integer

type state = int64

State required by the hash function

type 'a hash_fun = 'a -> state -> state

Hash function for values of type 'a, merging a fingerprint of the value into the state of type t

val init : state

Initial value

val finish : state -> int

Extract a usable hash value

val apply : 'a hash_fun -> 'a -> int

Apply a hash function to a value

Basic Combinators

val bool_ : bool hash_fun
val char_ : char hash_fun
val int_ : int hash_fun
val string_ : string hash_fun
val int32_ : int32 hash_fun
val int64_ : int64 hash_fun
val nativeint_ : nativeint hash_fun
val list_ : 'a hash_fun -> 'a list hash_fun

Hash a list. Each element is hashed using f.

val array_ : 'a hash_fun -> 'a array hash_fun
val opt : 'a hash_fun -> 'a option hash_fun
val pair : 'a hash_fun -> 'b hash_fun -> ('a * 'b) hash_fun
val triple : 'a hash_fun -> 'b hash_fun -> 'c hash_fun -> ('a * 'b * 'c) hash_fun
val if_ : bool -> 'a hash_fun -> 'a hash_fun -> 'a hash_fun

Decide which hash function to use depending on the boolean

type 'a sequence = ('a -> unit) -> unit
type 'a gen = unit -> 'a option
type 'a klist = unit -> [ `Nil | `Cons of 'a * 'a klist ]
val seq : 'a hash_fun -> 'a sequence hash_fun
val gen : 'a hash_fun -> 'a gen hash_fun
val klist : 'a hash_fun -> 'a klist hash_fun