A Scheme interpreter in Haskell