Compositional Data Access and Manipulation

  • Simon Peyton Jones, Microsoft

Haskell lets you write beautiful, modular code. Rather than waffle generally, I’ll use this talk to look at a particular example, Edward Kmett’s lovely lens library. Lenses have been called “jQuery for data types”: they give you a way to poke around in the guts of some large aggregate structure. Lenses compose (so you can make big lenses by gluing together little ones), and they exploit type classes to allow a remarkable degree of flexibility (get, set, fold, traverse, etc). I won’t assume that you already know Haskell; indeed one of my goals is to give you a sense of what Haskell is like without dragging you through a basic tutorial. So please come even if, perhaps especially if, you don’t already know Haskell. Come prepared to read lots of code and ask lots of questions.