Chapter 2 in Scala in Depth.