lens-3.6.0.1: Lenses, Folds and Traversals

PortabilityGHC
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellSafe-Inferred

GHC.Generics.Lens

Contents

Description

Note: GHC.Generics exports a number of names that collide with Control.Lens.

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.

Synopsis

Isomorphisms for GHC.Generics

generic :: Generic a => Simple Iso a (Rep a b)Source

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

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

generic1 :: Generic1 f => Simple Iso (f a) (Rep1 f a)Source

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

Generic Traversal

tinplate :: (Generic a, GTraversal (Rep a), Typeable b) => Simple Traversal a bSource

A Generic Traversal that visits every occurence of something Typeable anywhere in a container.

>>> allOf tinplate (=="Hello") (1::Int,2::Double,(),"Hello",["Hello"])
True
>>> mapMOf_ tinplate putStrLn ("hello",[(2 :: Int, "world!")])
hello
world!

class GTraversal f Source

Used to traverse Generic data by uniplate.

Instances