Hi.
That sounds good, especially to me since what you are describing has virtually no overlap with what I have written does. :)
What I'm also thinking about is that for working with code, we may want a simpler version of Scheme, one which doesn't know about the various syntactical sugar forms (like, there is no let or let*, just define[2] and lambda; letrec may be unavoidable). This should make writing macro algorithms easier (or manually written lowlevel macros), right?, or at least other code analyzers (type inferencers, documentation extraction,..).
I agree with this idea. However, having written a rather complete macro hygiene system, my experience is this: defines seem to be unavoidable in the top level, but for everything else they should be avoided when writing macro algorithms. letrecs are far easier to analyze than defines because of their more rigid structure.
This is of course assuming we're sticking to R5RS way of things, where define at the top level isn't at all the same as define within a scope.
/Per