Daniel Westheide, author of “The Neophyte’s guide to Scala” and Stefan Tilkov talk about some advanced Scala features and challenges, such as case classes and the problems they can create, algebraic data types, type classes and implicits, using the compiler for Prolog-like type level programming and programming with generic data structures.

Stefan Tilkov interviews Daniel Westheide about advanced Scala Topics

The Neophyte’s Guide to Scala
Scala Meta
Enforcing invariants in Scala datatypes
Strategic Scala Style: Designing Datatypes
Extractors
Type classes
Prolog example
Shapeless
The Type Astronaut’s Guide to Shapeless
Circe, yet another JSON library for Scala
There’s a Prolog in your Scala! (Slides)
There’s a Prolog in your Scala! (Source Code)
innoQ Podcast: Advanced Scala, Part 1 (German)
innoQ Podcast: Advanced Scala, Part 2 (German)