Copyright | (c) Justus Sagemüller 2017 |
---|---|
License | GPL v3 |
Maintainer | (@) jsagemue $ uni-koeln.de |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
- class Hash' h where
- class Hash' h => Hashable h a where
- data Prehashed h a = Prehashed {
- lazyHash :: !h
- prehashedValue :: a
- newtype LazilyHashableFunction h a b = LHF {}
- type Hash h = (Hashable h h, Hashable h Char, Hashable h (), Hashable h Void, Hashable h TypeRep, Num h)
- shash :: QuasiQuoter
- fundamental :: QuasiQuoter
- fundamental' :: QuasiQuoter
- strictHashed :: Hashable h a => a -> Prehashed h a
- (<#>) :: Hash h => Prehashed h (a -> b) -> Prehashed h a -> Prehashed h b
- liftPH2 :: Hash h => Prehashed h (a -> b -> c) -> Prehashed h a -> Prehashed h b -> Prehashed h c
Documentation
distinguisher :: h Source #
defaultSalt :: h Source #
class Hash' h => Hashable h a where Source #
Hashable Int Bool Source # | |
Hashable Int Char Source # | |
Hashable Int Double Source # | |
Hashable Int Float Source # | |
Hashable Int Int Source # | |
Hashable Int Integer Source # | |
Hashable Int () Source # | |
Hashable Int Void Source # | |
Hashable Int TypeRep Source # | |
Hashable h a => Hashable h (Maybe a) Source # | |
Hashable h a => Hashable h [a] Source # | |
Hash h => Hashable h (Prehashed h a) Source # | |
(Hashable h a, Hashable h b) => Hashable h (Either a b) Source # | |
(Hashable h a, Hashable h b) => Hashable h (a, b) Source # | |
Hash h => Hashable h (LazilyHashableFunction h a b) Source # | |
Prehashed | |
|
newtype LazilyHashableFunction h a b Source #
Hash h => Hashable h (LazilyHashableFunction h a b) Source # | |
type UnitObject (LazilyHashableFunction h) # | |
type ZeroObject (LazilyHashableFunction h) # | |
type PointObject (LazilyHashableFunction h) x # | |
type Object (LazilyHashableFunction h) a # | |
type PairObjects (LazilyHashableFunction h) a b # | |
type SumObjects (LazilyHashableFunction h) a b # | |
type MorphObjects (LazilyHashableFunction h) b c # | |
type Hash h = (Hashable h h, Hashable h Char, Hashable h (), Hashable h Void, Hashable h TypeRep, Num h) Source #
fundamental :: QuasiQuoter Source #
Transform an ordinary value into a pre-hashed one. This hashes the source code contained in the quasi quote, making the assumption that the behaviour of anything invoked therein will never change.
Applying this to anything but named, fixed-predefined values (standard library functions etc.) is probably a bad idea.
fundamental' :: QuasiQuoter Source #
fundamental
for single-argument functions (yields a LazilyHashableFunction
instead of a Prehashed
).
strictHashed :: Hashable h a => a -> Prehashed h a Source #