License | BSD-3-Clause |
---|---|
Stability | provisional |
Portability | GHC >= 7.4 |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Hashable support for GHC generics.
Since: 1.3.0.0
Synopsis
- genericHashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int
- genericLiftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int
- class GHashable arity f where
- ghashWithSalt :: HashArgs arity a -> Int -> f a -> Int
- data One
- data Zero
- data family HashArgs arity a :: Type
Implementation using Generics.
genericHashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int Source #
Generic hashWithSalt
.
Since: 1.3.0.0
genericLiftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int Source #
Generic liftHashWithSalt
.
Since: 1.3.0.0
Constraints
class GHashable arity f where Source #
The class of types that can be generically hashed.
Instances
GHashable One Par1 Source # | |
Defined in Data.Hashable.Generic.Instances | |
GHashable arity (U1 :: Type -> Type) Source # | |
Defined in Data.Hashable.Generic.Instances | |
GHashable arity (V1 :: Type -> Type) Source # | |
Defined in Data.Hashable.Generic.Instances | |
Hashable1 f => GHashable One (Rec1 f) Source # | |
Defined in Data.Hashable.Generic.Instances | |
(GSum arity a, GSum arity b) => GHashable arity (a :+: b) Source # | |
Defined in Data.Hashable.Generic.Instances | |
Hashable a => GHashable arity (K1 i a :: Type -> Type) Source # | |
Defined in Data.Hashable.Generic.Instances | |
(GHashable arity a, GHashable arity b) => GHashable arity (a :*: b) Source # | |
Defined in Data.Hashable.Generic.Instances | |
GHashable arity a => GHashable arity (M1 i c a) Source # | |
Defined in Data.Hashable.Generic.Instances | |
(Hashable1 f, GHashable One g) => GHashable One (f :.: g) Source # | |
Defined in Data.Hashable.Generic.Instances |
Instances
GHashable One Par1 Source # | |
Defined in Data.Hashable.Generic.Instances | |
Hashable1 f => GHashable One (Rec1 f) Source # | |
Defined in Data.Hashable.Generic.Instances | |
(Hashable1 f, GHashable One g) => GHashable One (f :.: g) Source # | |
Defined in Data.Hashable.Generic.Instances | |
newtype HashArgs One a Source # | |