lens-4.4.0.1: Lenses, Folds and Traversals

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

Control.Lens

Description

Usage:

You can derive lenses automatically for many data types:

 import Control.Lens
 data Foo a = Foo { _fooArgs :: [String], _fooValue :: a }
 makeLenses ''Foo

This defines the following lenses:

 fooArgs :: Lens' (Foo a) [String]
 fooValue :: Lens (Foo a) (Foo b) a b

You can then access the value with (^.) and set the value of the field with (.~) and can use almost any other combinator that is re-exported here on those fields.

The combinators here have unusually specific type signatures, so for particularly tricky ones, the simpler type signatures you might want to pretend the combinators have are specified as well.

More information on how to use lenses is available on the lens wiki:

http://github.com/ekmett/lens/wiki

Documentation