Abstract: It is almost 10 years since a blog writer named Rafael Ferreira wrote a post entitled “Type-safe Builder Pattern in Scala”. In this post Rafael shows how to use certain features of the Scala type system to implement the well-known “Builder Pattern” but with static compile-time safety checks. Since the original post, others have been inspired through the years to take the same example and show alternative approaches for the type-safe build pattern in Scala.
This talk continues in the same vein and aims to show the sheer variety of approaches that Scala enables, while offering perhaps a different perspective on some interesting Scala techniques for type-safety. (Some keywords: Implicit parameters, type constraints, Phantom types, Abstract type members, the Aux pattern)