Saturday, February 13, 2021
Scala has a highly expressive type system for modeling sets of instances, and their properties. But it can be hard for programmers to get a good intuition for what different types represent if we only see types through the source code that describes them.
This talk will be a journey through the Scala type system, examining the wealth of types on offer in Scala 2 and Scala 3, and presenting each in a visual form, showing the relationships between them, and developing an understanding of operations such as finding the least upper-bound of a pair of types. Furthermore, we will see how the concept of categorical duality arises every step of the way.
In the first Scala Love online conference on April 17, 2020, I gave a talk entitled Understanding Scala’s Type System. That talk mostly covered aspects common to Scala 2 and 3, it did cover union and intersection types. This talk is a continuation of that talk. It covers more advanced aspects of the type system, mostly new forms of types that are being introduced in Scala 3.