Pointless Lenses library.
Pointless Lenses is library of bidirectional lenses (http://www.cis.upenn.edu/~bcpierce/papers/newlenses-popl.pdf) defined in the point-free style of programming. Generic bidirectional lenses can be defined over inductive types by relying in a set of lifted lens combinators from the standard point-free combinators. Recursive lenses can be defined by combining the lenses for the recursion patterns of catamorphisms and anamorphism. More refined lens behavior can be achieved a more operation-based variant of delta-lenses (<>). The library also provides QuickCheck procedures to test the well-behavedness of user-defined lens transformations. More details can be found in the accompanying papers http://alfa.di.uminho.pt/~hpacheco/publications/mpc10.pdf and http://alfa.di.uminho.pt/~hpacheco/publications/hdlenses.pdf