Writing a simple language in Haskell