answers to exercises in real world haskell