Want to learn how to employ Haskell records successfully in large projects? Then join Adam Gundry as he explains how (with the help of Simon Peyton Jones) he has extended Haskell to overcome common frustrations with records.
With the increasing use of Haskell for real-world applications, the records system has been a frequent source of frustration to Haskell programmers working on large projects. In particular, an inability to reuse field names across different datatypes leads to awkward ad-hoc naming. There have been many complaints over the years, and designs for better systems proposed, but no concrete progress on implementation. It seemed that academics considered the records problem solved and moved on to greener pastures, while the practical difficulties remained.
Then in late 2011, Simon Peyton Jones proposed a simple extension to permit reusing the same field names in multiple records, thereby resolving the most painful problem, if not all the imperfections of the Haskell record system. This is the story of how Adam implemented that extension in GHC, with the help of Simon and others. Along the way, he'll talk about the challenges of maintaining compatibility with existing Haskell code and fitting something new into the already complex space of Haskell extensions supported by GHC. Adam will then explain the design he and his team ended up with, and how it integrates nicely with lenses, which provide a good solution to the problems of record update.
The talk will assume a vague familiarity with Haskell, but should be reasonably self-contained.
YOU MAY ALSO LIKE:
- The JVM as a platform for building smart contracts (in London on 28th June 2017)
- Uncle Bob's Advanced TDD (in London on 30th - 31st October 2017)
- µCon 2017: The Microservices Conference (in London on 6th - 7th November 2017)
- Fast Track to RESTful Microservices (in London on 8th - 10th November 2017)
Overloaded record fields for Haskell
Adam currently works as a Haskell Consultant for Well-Typed LLP. He is a keen Haskell programmer, and completed a PhD in 2013 on combining Haskell with dependent types.