A simple but powerful implementation of function lenses (aka functional references, accessors, etc..).
This library provides a convenient way to access and update the elements of a structure. It is very similar to Data.Accessors, but simpler, a bit more generic and has fewer dependencies. I particularly like how cleanly it handles nested structures in state monads. It also contains a couple simple functions that can be used to easily convert a function that fetches data from a structure to a function that modifies data in the structure.
Hackage hasn't generated the haddock documentation yet, but there is a mini-tutorial in Data.Lenses that explains it's use.
Also for those that are interested it's also hosted on github here: http://github.com/jvranish/Lenses/tree/master
Let me know what you think,
Criticism is welcome,
- Job