Adding kind-polymorphism to the Scala programming language by Miles Sabin at Curry On
Did you attend Curry On in Amsterdam this July? There was a long list of inspiring and interesting talks from people active in the Scala community such as Yifan Xing, Chris Ford and Miles Sabin. Don't worry if you unfortunately missed the conference as here is Miles's talk on adding kind-polymorphism to the Scala programming language for you to catch up on.
In Scala, the data type generic programming library shapeless is the tool that 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 generic programming directly in the language? What sort of primitive mechanisms would we choose? In this talk I will argue that kind-polymorphism, the ability to abstract over type constructors of any arity, is one we should give serious consideration to. I will demonstrate a prototype implementation in the Typelevel Scala compiler and show how it can be used to dramatically simplify generic programming in Scala.
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.