License | BSD-style |
---|---|
Maintainer | Foundation |
Safe Haskell | None |
Language | Haskell2010 |
Documentation
Type with the ability to be hashed
Hashable doesn't have any specific rules, and it's made for raw speed. More specifically don't expect different type representing the same data to hash to the same value
hashMix (1 :: Integer) /= hashMix (1 :: Word8)
True
Hashable Int8 # | |
Hashable Int16 # | |
Hashable Int32 # | |
Hashable Int64 # | |
Hashable Integer # | |
Hashable Word8 # | |
Hashable Word16 # | |
Hashable Word32 # | |
Hashable Word64 # | |
Hashable Natural # | |
Hashable String # | |
Hashable IPv4 # | |
Hashable IPv6 # | |
Hashable UUID # | |
Hashable a => Hashable [a] # | |
PrimType a => Hashable (UArray a) # | |
(Hashable a, Hashable b) => Hashable (a, b) # | |
(Hashable a, Hashable b) => Hashable (Tuple2 a b) # | |
(Hashable a, Hashable b, Hashable c) => Hashable (a, b, c) # | |
(Hashable a, Hashable b, Hashable c) => Hashable (Tuple3 a b c) # | |
(Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (a, b, c, d) # | |
(Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (Tuple4 a b c d) # | |
(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e) # | |
(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f) => Hashable (a, b, c, d, e, f) # | |
Incremental Hashing state. Represent an hashing algorithm
the base primitive of this class is hashMix8
, append
mix a Word8 in the state
The class allow to define faster mixing function that works on bigger Word size and any unboxed array of any PrimType elements
hashNew, hashNewParam, hashMix8, hashEnd