Lens tutorials are the new monad tutorials, I hear. (This is neat, since monads and lenses were both discovered in the year 1958.) The thing is, after independently rediscovering lenses and working on them for a year and a half before Jeremy Gibbons made the connection, I have a very different perspective on them. This post is based on a talk I gave at the 7th international workshop on bidirectional transformations in Nice. My aim is to move fast and break things, where the things in question are your preconceptions about what lenses are and what they can be used for. Much of this will be a history of lenses, which includes at least 9 independent rediscoveries.
The rising sea refers to a particular approach to mathematical problem-solving, in which many small, apparently trivial steps are taken until the solution of a problem becomes itself trivial. It was poetically introduced by Alexander Grothendieck in his beautiful, auto-psychoanalytic Récoltes et Samailles, in which he imagines the mathematical problem as a landmass being swallowed as “the sea advances insensibly in silence”. This makes me think of Xerxes, all-powerful over humans, helpless against the power of the sea. Grothendieck views the mathematician and the problem as complimenting each other, the mathematician using the problem’s natural structure in its solution, rather than striking it with a foreign, invasive method.