Sometimes, Ints, Strings and Doubles are not enough: Int has to be greater than 0, String cannot be empty, and Double has to belong inside an interval. What if we could define these restrictions in compile-time? In this talk you will learn about Refined Types, seeing how we can enhance our type system, through the lens of ‘Refined’. Refined is a Scala library for refining types with type-level predicates which constrain the set of values described by the refined type.