Tue Jan 22 12:48:59 CET 2013

Haskell vs. Scheme : DSL embedding with higher order abstract syntax

The cool thing about Haskell is that Monads and the `do' notation are
quite a strong abstraction that allows a lot to be done behind the

In Scheme, I still need 2 kinds of syntax: a special case frontend
that tucks away the semantics threading (cfr. environment monad) and
evaluation order tricks, and one that does the actual abstract
interpretation on the resulting lambda expressions.

I.e. you "need" macros because of evaluation order restrictions.