Haskell eXchange 2013 / Lenses: compositional data access and manipulation.

Please RSVP for instructions on how to join the event.


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). One of Haskell’s most egregious shortcomings is that you can’t use the same field name in different record types. I’ll explain how we are planning to fix that (joint work with Adam Gundry), and how the result will fit nicely into the lens world.


No outline is available


The creator of this video has not given permission to embed it on this domain.

Instead, you can view this video by following this external link:

Go to site

Simon Peyton-Jones (simon.peyton.jones)


Simon's main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

For a complete view of this profile, including education, work experience and developer information, you need to be logged in and have a subscription.

Simon's upcoming trainings

No events

Simon's past online trainings

Simon's blog posts

IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper