fix from haskell98