Import groupoids-3.0.1.1 as wip/hs-groupoids.

Haskell 98 Groupoids
Import groupoids-3.0.1.1 as wip/hs-groupoids.
Import semigroupoid-extras-3.0.1 as wip/hs-semigroupoid-extras

Semigroupoids and semigroupoid operations requiring Haskell extensions
Import semigroupoid-extras-3.0.1 as wip/hs-semigroupoid-extras.
Import profunctor-extras-3.3.3.1 as wip/hs-profunctor-extras.

This package provides a number of utilities and constructions that arise
when working with profunctors that require minor extensions to Haskell 98.
Import profunctor-extras-3.3.3.1 as wip/hs-profunctor-extras.
Import lens-3.9.0.3 as wip/hs-lens.

This package comes "Batteries Included" with many useful lenses for the
types commonly used from the Haskell Platform, and with tools for
automatically generating lenses and isomorphisms for user-supplied data
types.

The combinators in Control.Lens provide a highly generic toolbox for
composing families of getters, folds, isomorphisms, traversals, setters and
lenses and their indexed variants.

An overview, with a large number of examples can be found in the README:
https://github.com/ekmett/lens#lens-lenses-folds-and-traversals

A video on how to use lenses and how they are constructed is available from
youtube: http://youtu.be/cefnmjtAolY?hd=1

Slides can be obtained here:
http://comonad.com/haskell/Lenses-Folds-and-Traversals-NYC.pdf

More information on the care and feeding of lenses, including a brief
tutorial and motivation for their types can be found on the lens wiki:
https://github.com/ekmett/lens/wiki
Import lens-3.9.0.3 as wip/hs-lens.