While working on the Kittens project, which uses shapeless to derive Cats type class instances for Scala algebraic data types, I repeatedly found myself running straight into the brick wall of the infamous Scala compiler bug that's listed in the Scala issue tracker as SI-2712. Game over? No, Challenge Accepted!
In this talk I'll explain what SI-2712 is and why it's a problem, especially in libraries like Cats which make extensive use of type classes, like Functor, which are indexed by higher kinded types. I'll explain some of the techniques that can be used to work around it, both old, like Unapply, and new, such as the continuation passing style inspired approach I took in shapeless to support Kittens. I'll also talk about the prospect of trying to fix SI-2712 in Typelevel Scala rather than just working around it.
Miles has been doing stuff with Scala for more than ten years, currently with Underscore Consulting. He is a cofounder of Typelevel and his best known project, the Scala generic programming library shapeless, is the weapon of choice wherever boilerplate needs to be scrapped or arities abstracted over.
Do you want to sponsor flatMap(Oslo)?
Send an email to email@example.com