Working my way through Real World Haskell