added more haskell functions