generic-data-functions-0.3.0: Familiar functions lifted to generic data types
Safe HaskellSafe-Inferred
LanguageGHC2021

Generic.Data.Function.Contra

Synopsis

Documentation

class GenericContra tag where Source #

Associated Types

type GenericContraF tag :: Type -> Type Source #

type GenericContraC tag a :: Constraint Source #

Instances

Instances details
GenericContra (EmptyRec0 f :: Type) Source #

over types where all fields map to mempty

Instance details

Defined in Generic.Data.Function.Contra.Constructor

Associated Types

type GenericContraF (EmptyRec0 f) :: Type -> Type Source #

type GenericContraC (EmptyRec0 f) a Source #

GenericContra (NoRec0 f :: Type) Source #

over types with no fields in any constructor

Instance details

Defined in Generic.Data.Function.Contra.Constructor

Associated Types

type GenericContraF (NoRec0 f) :: Type -> Type Source #

type GenericContraC (NoRec0 f) a Source #

genericContraNonSum :: forall {cd} {gf} asserts tag a. (Generic a, Rep a ~ D1 cd gf, GContraNonSum tag gf, ApplyGCAsserts asserts gf, Contravariant (GenericContraF tag)) => GenericContraF tag a Source #

Generic contra over a term of non-sum data type a.

a must have exactly one constructor.

class GContraNonSum tag gf Source #

Minimal complete definition

gContraNonSum

Instances

Instances details
GContraNonSum (tag :: k1) (V1 :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.NonSum

Methods

gContraNonSum :: forall (p :: k10). GenericContraF tag (V1 p) Source #

GContraNonSum (tag :: k1) (l :+: r :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.NonSum

Methods

gContraNonSum :: forall (p :: k10). GenericContraF tag ((l :+: r) p) Source #

(Contravariant (GenericContraF tag), GContraC tag g) => GContraNonSum (tag :: k1) (C1 c g :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.NonSum

Methods

gContraNonSum :: forall (p :: k10). GenericContraF tag (C1 c g p) Source #

genericContraSum :: forall {cd} {gf} opts asserts tag a. (Generic a, Rep a ~ D1 cd gf, GContraSum opts tag gf, ApplyGCAsserts asserts gf, Contravariant (GenericContraF tag)) => GenericContraF tag String -> GenericContraF tag a Source #

Generic contra over a term of sum data type a.

You must provide a contra function for constructor names.

This is the most generic option, but depending on your string manipulation may be slower.

class GContraSum (opts :: SumOpts) tag gf Source #

Minimal complete definition

gContraSum

Instances

Instances details
GContraSum opts (tag :: k1) (V1 :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.Sum

Methods

gContraSum :: forall (p :: k10). GenericContraF tag String -> GenericContraF tag (V1 p) Source #

GContraCSum tag (C1 c g) => GContraSum 'AllowSingletonSum (tag :: k1) (C1 c g :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.Sum

Methods

gContraSum :: forall (p :: k10). GenericContraF tag String -> GenericContraF tag (C1 c g p) Source #

GContraSum 'SumOnly (tag :: k1) (C1 c g :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.Sum

Methods

gContraSum :: forall (p :: k10). GenericContraF tag String -> GenericContraF tag (C1 c g p) Source #

GContraCSum tag (l :+: r) => GContraSum opts (tag :: k1) (l :+: r :: k2 -> Type) Source # 
Instance details

Defined in Generic.Data.Function.Contra.Sum

Methods

gContraSum :: forall (p :: k10). GenericContraF tag String -> GenericContraF tag ((l :+: r) p) Source #