Interpreter and compiler for scheme (r7rs) implemented in haskell