The yall package
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?
Lenses are parameterized over two Monads (by convention m and w), and look like a -> 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.Iso that complements Lens powerfully
a rich set of category-level class instances (for now from categories) for Lens and Iso. 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.
a module providing template haskell deriving of Lenses
pre-define lenses for prelude types, State
remove setEmpty variants only useful on lenses better expressed in Iso
create a class for lens operations, supporting...
use newtype wrappers for different monadic lifting schemes
better ordering for set, allowing let-floating for partial application
- No changelog available
|Versions||0.1, 0.2, 0.2.0.1, 0.2.1|
|Dependencies||base (==4.*), categories (<1.0), transformers|
|Source repository||head: git clone https://github.com/jberryman/yall.git -b master|
|Upload date||Mon May 28 23:36:02 UTC 2012|
|Downloads||218 total (21 in last 30 days)|
For package maintainers and hackage trustees