Partial chapter 5 in Scala in Depth.