Real World Haskell Work and Exercises