Scala Design Patterns [electronic resource] : Patterns for Practical Reuse and