Zafu/Abstract/Hash

Zafu/Abstract/Hash

source code:

public dependencies: Zafu/Abstract/Eq

Index

Types

Hash[a]

type Hash[a: -*]

Values

finish_61

references: Int

def finish_61(acc: Int, size_or_arity: Int, tag: Int) -> Int

hash

references: Hash, Int

def hash[a](inst: Hash[a], value: a) -> Int

hash_by

references: Hash

def hash_by[a, b](inst: Hash[a], project: b -> a) -> Hash[b]

hash_from_fn

Constructor from a potentially out-of-range hash function.

references: Hash, Int, Zafu/Abstract/Eq::Eq

def hash_from_fn[a](hash_fn: a -> Int, eq_inst: Zafu/Abstract/Eq::Eq[a]) -> Hash[a]

hash_specialized

Constructor for hash functions that already return 61-bit values.

references: Hash, Int, Zafu/Abstract/Eq::Eq

def hash_specialized[a](hash_fn: a -> Int, eq_inst: Zafu/Abstract/Eq::Eq[a]) -> Hash[a]

hash_to_Eq

references: Hash, Zafu/Abstract/Eq::Eq

def hash_to_Eq[a](inst: Hash[a]) -> Zafu/Abstract/Eq::Eq[a]

laws_Hash

Law checker: Eq laws, Eq/Hash coherence, and 61-bit range invariant.

references: Hash, Test

def laws_Hash[a](inst: Hash[a], x: a, y: a, z: a) -> Test

mix_61

references: Int

def mix_61(acc: Int, next: Int) -> Int

normalize_61

references: Int

def normalize_61(raw: Int) -> Int