real-world-haskell, Chapter 8 work