Please log in to watch this conference skillscast.
Embarrassingly, this guarantee is weak: it fails as soon as you embed a newtype’d value in a data structure. At the same time, the hugely-popular language feature “generalised newtype deriving” turns out to rely internally on a strong version of the guarantee. And, in the presence of type-level functions, the strong version of the guarantee turns out to be unsound, leading to a notorious type-soundness bug in GHC that has persisted for several years.
As is often the case in Haskell, finding a solid, principled solution to the problem turned out to be far more interesting than we expected, requiring us to distinguish two flavours of type equality (representational and nominal), with a “role system” to allow type-safe abstraction. I think the result is pretty cool. In this talk I’ll explain what all the fuss is about.
YOU MAY ALSO LIKE:
- The Launch of the Haskell Foundation (SkillsCast recorded in November 2020)
- FP in Kotlin with Arrow with Jorge Castillo (Online Course on 27th - 30th July 2021)
- F# eXchange 2021 (Online Conference on 20th October 2021)
- ScalaCon 2021: November Edition (Online Conference on 2nd - 5th November 2021)
- Abstract Fun-sense: a functional perspective on life (SkillsCast recorded in May 2021)
- Journey to the Centre of the JVM (SkillsCast recorded in May 2021)