Thu Aug 23 12:45:32 EDT 2018

Monads are metaprograms, and they are not

I.e. there is no staging in the sense of passing through several
compilation steps.

Evaluation is just function application, and there is no need to build
inerpreter/compiler towers.  Towers are just function composition.

Lazyness makes this all work transparently.

But.. if this is the case, then doing this in a strict language is
just another layer of lambdas.  So the laziness itself doesn't really
do anything.  The important bit is the function abstraction, and for
the particular problem, also the polymorphism wrt. the particular

Can I just do this in Scheme?