Some source code from the book A Little Java, A Few Patterns by Matthias Felleisen and Daniel Friedman