A record system is a type system feature found in many languages, which is used for modeling data using named fields. This talk discusses the capabilities and pitfalls of Haskell’s record system and how the problems can be addressed.
At a language level, we’ll look at how some Haskell-inspired languages improve upon Haskell’s record system. At a library level, we’ll look at how modern GHC features enable alternative record systems to be built.
We’ll also look at the structural typing concepts of extensible records and row polymorphism.