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