real world haskell ch4