Haskell puzzles