moving over to haskell