Data.Generics.Product.Internal.GLens

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

Copyright | (C) 2020 Csongor Kiss
License | BSD3
Maintainer | Csongor Kiss <kiss.csongor.kiss@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

Data.Generics.Product.Internal.GLens

Description

Derive record field getters and setters generically.

# Documentation

class GLens (pred :: Pred) (s :: Type -> Type) (t :: Type -> Type) a b | s pred -> a, t pred -> b where #

Methods

glens :: Lens (s x) (t x) a b #

#### Instances

Instances details

GProductLens (Eval pred l) pred l r l' r' a b => GLens pred (l :*: r) (l' :*: r') a b # |
Instance details Defined in Data.Generics.Product.Internal.GLens Methods glens :: Lens ((l :*: r) x) ((l' :*: r') x) a b #
(GLens pred l l' a b, GLens pred r r' a b) => GLens pred (l :+: r) (l' :+: r') a b # |
Instance details Defined in Data.Generics.Product.Internal.GLens Methods glens :: Lens ((l :+: r) x) ((l' :+: r') x) a b #
GLens pred (K1 r a :: Type -> Type) (K1 r b :: Type -> Type) a b # |
Instance details Defined in Data.Generics.Product.Internal.GLens Methods glens :: Lens (K1 r a x) (K1 r b x) a b #
GLens pred f g a b => GLens pred (M1 m meta f) (M1 m meta g) a b # |
Instance details Defined in Data.Generics.Product.Internal.GLens Methods glens :: Lens (M1 m meta f x) (M1 m meta g x) a b #

type GLens' (pred :: Pred) (s :: Type -> Type) a = GLens pred s s a a #

type TyFun a b = a -> b -> Type #

type family Eval (f :: TyFun a b) (x :: a) :: b #