working through exercises from Functional Programming for the Object-Oriented Programmer