Please log in to watch this conference skillscast.
Shapeless has led the way on automatic type class instance derivation since the arrival of the TypeClass type class back in 2013. Since then this mechanism has evolved through the introduction of the Lazy type which allows the most general form of type class derivation currently available in Scala. This is what forms the basis for a whole host of automatic and semi-automatic derivations in a wide variety of libraries.
However, this has come at the cost of sometimes excessive compile times, is complicated by seemingly intractable issues relating to the relative priority of type class instances, and is dependent on macros and compiler internals which are unlikely to be portable to Scala compilers other the Lightbend compiler or the very closely related Typelevel Scala compiler. As Dotty and other alternative Scala compilers mature this last issue is becoming increasingly urgent.
In this talk I will give a preview of work that I have been doing recently with Lightbend's support to address these issues: a combination of new Scala language features, compiler performance improvements and new derivation implementation techniques. What you will take away is a sense of how much is possible when we don't restrict ourselves to working within current Scala but also look to changing Scala to better support the way we want to work with it.
YOU MAY ALSO LIKE:
Shapeless is Dead! Long Live Shapeless!
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.