Haskell practice problems