move haskell to separate file