The compiler should work for you, you shouldn't work for the compiler!
Well with Scala the compiler is there to help you. In this talk by Lead Data Engineer, Adelbert Chang at Typelevel Summit he explores the variety of ways that the Scala compiler will work for you.
Let the Scala compiler work for you
Programming in some languages can feel like you’re working for the compiler - the type checker is naggy, the type system limiting, and much of your code is extraneous. This is backwards. The compiler should be working for you, helping you check your code, allowing you to express the abstractions you want, and enabling you to write clean, beautiful code. In Scala we are lucky to have such a compiler.
In this talk we will explore a variety of techniques, libraries, and compiler plugins for Scala that demonstrate the utility of having a compiler that works for you.