Adding kind-polymorphism to the Scala programming language

Shapeless is the tool people reach for when they have problems involving abstraction over data types of different shapes and sizes. But suppose we wanted to support this sort of data type generic programming directly in Scala? What sort of primitive mechanisms would we choose? In this talk Miles will argue that kind-polymorphism, the ability to abstract over type constructors of any arity, is one we should give serious consideration to. He will demonstrate a prototype implementation in the Typelevel compiler and show how it can be used to dramatically simplify generic programming in Scala.


Miles will convey that supposedly "advanced" programming language features can be crucial to allowing ordinary everyday programming problems to be solved in a simple and natural way.