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:
- Greg Young's CQRS, Domain Events, Event Sourcing and how to apply DDD (in London on 9th - 11th June 2015)
- Uncle Bob Martin's Clean Code Workshop on Agile Software Craftsmanship (in London on 22nd - 23rd June 2015)
- Conway's Law & Reverse Conway's Law - How to avoid being caught by it and how to turn it to your advantage (in London on 13th July 2015)
- µCon 2015: The Microservices Conference (in London on 9th - 10th November 2015)
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.