Haskell source code from 3rd edition