Haskell: problem 3