haskell the hard way part2