Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- class GenericContra tag where
- type GenericContraF tag :: Type -> Type
- type GenericContraC tag a :: Constraint
- genericContraF :: GenericContraC tag a => GenericContraF tag a
- class GContraC tag gf where
- gContraC :: GenericContraF tag (gf p)
Documentation
class GenericContra tag where Source #
TODO
The type variable is uninstantiated, used purely as a tag. Good types include the type class used inside (providing you define the type class/it's not an orphan instance), or a custom void data type. See the binrep library on Hackage for an example.
type GenericContraF tag :: Type -> Type Source #
type GenericContraC tag a :: Constraint Source #
genericContraF :: GenericContraC tag a => GenericContraF tag a Source #
Instances
GenericContra (EmptyRec0 f :: Type) Source # | over types where all fields map to |
Defined in Generic.Data.Function.Contra.Constructor type GenericContraF (EmptyRec0 f) :: Type -> Type Source # type GenericContraC (EmptyRec0 f) a Source # genericContraF :: GenericContraC (EmptyRec0 f) a => GenericContraF (EmptyRec0 f) a Source # | |
GenericContra (NoRec0 f :: Type) Source # | over types with no fields in any constructor |
Defined in Generic.Data.Function.Contra.Constructor type GenericContraF (NoRec0 f) :: Type -> Type Source # type GenericContraC (NoRec0 f) a Source # genericContraF :: GenericContraC (NoRec0 f) a => GenericContraF (NoRec0 f) a Source # |
class GContraC tag gf where Source #
gContraC :: GenericContraF tag (gf p) Source #
Instances
Divisible (GenericContraF tag) => GContraC (tag :: k1) (U1 :: k2 -> Type) Source # | |
Defined in Generic.Data.Function.Contra.Constructor gContraC :: forall (p :: k10). GenericContraF tag (U1 p) Source # | |
(Divisible (GenericContraF tag), GContraC tag l, GContraC tag r) => GContraC (tag :: k1) (l :*: r :: k2 -> Type) Source # | |
Defined in Generic.Data.Function.Contra.Constructor gContraC :: forall (p :: k10). GenericContraF tag ((l :*: r) p) Source # | |
(Contravariant (GenericContraF tag), GenericContra tag, GenericContraC tag a) => GContraC (tag :: k1) (S1 c (Rec0 a) :: k2 -> Type) Source # | |
Defined in Generic.Data.Function.Contra.Constructor |