Abstract: Scala's type system and implicit resolution mechanism allow for sophisticated type-level relationship inference. In this talk, we will see how we can impose type-level constraints and determine complex relationships between types, enough to be able to sort types... at compile time.