Back To Schedule
Room 1 - Expert

Wednesday June 12th, 15:30-16:15

The Shape(less) of Type Class Derivation in Scala 3

About this Session

Type class derivation in Scala 2 is powered by a combination of implicit-driven type-level programming and macros. The latter are going away in Scala 3, and there are entirely new mechanisms for type-level programming arriving: specializing inlining, match types, and inline matches. Will these, and maybe a sprinkling of new language-level primitives, support type class derivation as well as Scala 2? Maybe even better?

In this talk I will show you the current state of the art in Dotty, how that improves on what we can do today in Scala 2, and what we can look forward to in Scala 3.

Required Knowledge

Attendees should be familiar with how type classes are encoded in Scala. Some understanding of Scala 2 type-level programming would be helpful, but isn't required.


Miles Sabin

Miles has been doing stuff with Scala for more than a decade, 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. Lately he has been spending most of his time hacking on scalac and dotty, trying to make shapeless redundant.