My work for the Coursera course "Functional Programming Principles in Scala"