A Scheme interpreter, implemented in Haskell