Programming in Scala - Odersky, Martin; Venners, Bill; Spoon, Lex (2011)