added haskell stuffs