Exercises and example problems from Real World Haskell