A scheme interpreter in Haskell