Haskell: problem 8