Chap 2 Real world haskell