Data.Generics.Product.Internal.Fields

generic-lens-core-2.2.1.0: Generically derive traversals, lenses and prisms.

Safe Haskell | None
Language | Haskell2010

Data.Generics.Product.Internal.Fields

# Documentation

type Context_ (field :: Symbol) s t a b = (HasTotalFieldP field (Rep s) ~ 'Just a, HasTotalFieldP field (Rep t) ~ 'Just b, UnifyHead s t, UnifyHead t s) #

type Context' (field :: Symbol) s a = (Generic s, ErrorUnless field s (CollectField field (Rep s)), GLens' (HasTotalFieldPSym field) (Rep s) a, Defined (Rep s) (NoGeneric s '[(('Text "arising from a generic lens focusing on the " ':<>: QuoteType field) ':<>: 'Text " field of type ") ':<>: QuoteType a, 'Text "in " ':<>: QuoteType s]) ()) #

type Context0 (field :: Symbol) s t a b = (Generic s, Generic t, GLens (HasTotalFieldPSym field) (Rep s) (Rep t) a b, ErrorUnless field s (CollectField field (Rep s)), Defined (Rep s) (NoGeneric s '[(('Text "arising from a generic lens focusing on the " ':<>: QuoteType field) ':<>: 'Text " field of type ") ':<>: QuoteType a, 'Text "in " ':<>: QuoteType s]) ()) #

class Context (field :: Symbol) (s :: k) (t :: k1) (a :: k2) (b :: k3) | s field -> a, t field -> b, s field b -> t, t field a -> s #

#### Instances

Instances details

(HasTotalFieldP field (Rep s) ~ 'Just a, HasTotalFieldP field (Rep t) ~ 'Just b, HasTotalFieldP field (Rep (Indexed s)) ~ 'Just a', HasTotalFieldP field (Rep (Indexed t)) ~ 'Just b', t ~ Infer s a' b, s ~ Infer t b' a) => Context field (s :: Type) (t :: Type) (a :: Type) (b :: Type) # |
Instance details Defined in Data.Generics.Product.Internal.Fields

derived :: forall (field :: Symbol) s t a b. Context0 field s t a b => Lens s t a b #