lens-5.0.1: Lenses, Folds and Traversals
Copyright (C) 2012-16 Edward Kmett
License BSD-style (see the file LICENSE)
Maintainer Edward Kmett <ekmett@gmail.com>
Stability experimental
Portability GHC
Safe Haskell None
Language Haskell2010

GHC.Generics.Lens

Description

You can use hiding or imports to mitigate this to an extent, and the following imports, represent a fair compromise for user code:

import Control.Lens hiding (Rep)
import GHC.Generics hiding (from, to)

You can use generic to replace from and to from GHC.Generics , and probably won't be explicitly referencing Rep from Control.Lens in code that uses generics.

This module provides compatibility with older GHC versions by using the generic-deriving package.

Synopsis

Documentation

generic :: ( Generic a, Generic b) => Iso a b ( Rep a g) ( Rep b h) Source #

Convert from the data type to its representation (or back)

>>> "hello"^.generic.from generic :: String
"hello"

generic1 :: ( Generic1 f, Generic1 g) => Iso (f a) (g b) ( Rep1 f a) ( Rep1 g b) Source #

Convert from the data type to its representation (or back)

_Rec1 :: Iso ( Rec1 f p) ( Rec1 g q) (f p) (g q) Source #

_K1 :: Iso ( K1 i c p) ( K1 j d q) c d Source #

_M1 :: Iso ( M1 i c f p) ( M1 j d g q) (f p) (g q) Source #

_R1 :: Prism' ((f :+: g) a) (g a) Source #

You can access fields of `data (f :*: g) p` by using it's Field1 and Field2 instances