forth compiler written in haskell