@hackage yall0.2.1
Lenses with a southern twang
Categories
License
BSD-3-Clause
Maintainer
brandon.m.simmons@gmail.com
Links
Versions
Installation
Dependencies (3)
- base <5 && >=4
- categories >=1.0
- transformers Show all…
Dependents (2)
@hackage/acme-everything, @hackage/zippo
Why yet another lens library? First, none of the existing libraries for Lenses were adequate for my needs (specifically for my use of lenses in "pez"). And anyway, why not try to create something novel and better?
Distinguishing features:
Lenses are parameterized over two Monads (by convention
mandw), and look likea -> m (b -> w a, b). this lets us define lenses for sum types, that perform validation, that do IO (e.g. persist data to disk), etc., etc.a module
Data.Yall.Isothat complementsLenspowerfullya rich set of category-level class instances (for now from "categories") for
LensandIso. These along with the pre-defined primitive lenses and combinators give an interface comparable to Arrow
You should import either Data.Yall or Data.Yall.Lens,
and optionally Data.Yall.Iso. Data.Yall is a simplified,
but mostly-compatible, version of a subset of Data.Yall.Lens.
UPDATE: I have stopped developing this package. Instead you should take a look at and contribute to http://hackage.haskell.org/package/lens
TODOs:
a module providing template haskell deriving of Lenses
pre-define lenses for prelude types, State
CHANGES:
depend on categories >= 1