real world haskell ch3