Code for the Assignments of Functional Programming Principles in Scala by Martin Odersky