Lenses are a simple but very useful construct that provide views over data for retrieval and modification in a compositional way. The lens library in Haskell (a.k.a.
Control.Lens) takes this idea to an extreme. This talk provides a history of lens encodings and their failings, and then demonstrates why lens should be an essential part of any functional programmers toolkit.
This talk was presented at the Functional Programming Sydney user group.