An interpretor written in Haskell