hard haskell