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
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
a rich set of category-level class instances (for now from "categories") for
Iso. These along with the pre-defined primitive lenses and combinators give an interface comparable to Arrow
a module providing template haskell deriving of Lenses
setEmptyvariants 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
|Versions||0.1, 0.2, 0.2.0.1, 0.2.1|
|Dependencies||base (==4.*), categories (<1.0), transformers [details]|
|Source repository||head: git clone https://github.com/jberryman/yall.git -b master|
|Uploaded||Thu May 24 21:48:10 UTC 2012 by BrandonSimmons|
|Downloads||918 total (3 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
For package maintainers and hackage trustees