lens-4.7.0.1: Lenses, Folds and Traversals

Copyright(C) 2012-14 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
PortabilityGHC
Safe HaskellSafe-Inferred
LanguageHaskell98

Generics.Deriving.Lens

Contents

Description

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

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

import Generics.Deriving hiding (from, to)

You can use generic to replace from and to from Generics.Deriving.

Synopsis

Isomorphisms for GHC.Generics

generic :: Generic a => Iso' a (Rep a b)

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

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

generic1 :: Generic1 f => Iso' (f a) (Rep1 f a)

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

Generic Traversal

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

A Generic Traversal that visits every occurrence 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

Used to traverse Generic data by uniplate.

Minimal complete definition

tinplated

Instances