Pexels Photo 96381

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

Pexels Photo 96381

So we've been introduced to Scala 3...

But what about the other new mechanisms that come along with it? At Scala Days, Miles Sabin gave us the insight for type-level programming arriving. Not only that, what is the current state of Dotty?

Let's find out!


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

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.


About 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.


This talk was given by Miles Sabin at Scala Days 2019.