Put-based lens library.
Putlenses is a library of lenses where users specify backward put
transformations (set
in the Haskell lens package) and the library provides forward get
transformations for free (view
in the lens package). This contrasts with other traditional libraries for bidirectional programming, where forward transformations are specified instead and backward transformations are automatically derived, and offers more expressive power and control over the bidirectional synchronization strategies to users, while preserving a similarly maintainable specification style. An introduction to putback-based programming can be found at http://grace-center.jp/wp-content/uploads/2013/01/GRACE-TR-2012-08.pdf. A research paper on putlenses is available at http://dl.acm.org/citation.cfm?id=2543737.