solving problems with Haskell