Sun Dec 4 12:20:19 EST 2011
Problem: first argument of _let monadic?
I'm not sure.. Currently we need
v <- ...
_let v (\v -> ...)
But this looks weird. _let should really take a monadic value. The
alternative would be to not use _let but an explicit
v <- nameVar $ ...
Let's fix that first.
The thing is that apparently all results are already named, so this
approach isn't necessary. Really, _let isn't necessary if all
operations return named expressions.
What is necessary is a way to explicitly store non-monadic values
(i.e. literals or other variable references) in freshly named
variables. So let's introduce _var.
It turns out that _begin also isn't necessary. Maybe mVar can be
modified such that a variable of type () is never created?