A haskell implementation of scheme