In the reference manual, there is a reference to Scheme’s macro feature, stating how Snap! has had unevaluated inputs but not a way to separate the namespaces of the variables of a macro and its caller. Could hygienic macros not be created by having a block modify the expansion’s variable names and decode them when called?
Yes, that's totally doable, and is just waiting for me to get a. The thing is, while I'm at it, I'd like to implement the pattern-matching part of Scheme macros (syntax-rules). So I have to work up a lot of energy.