Just to be a little picky: Actually no, it is sufficient to override lambda, let, let*, define and define-macro to implement hygiene. I did that first, but even though it worked, it felt slightly hackish, so now i use the ##expand-source and c#expand- source hooks. This is cleaner and more powerful as well. No changes to Gambit are required.
True. I haven't look at your source code, but I suppose that would be a metacircular evaluator? I think what I meant to say was that hygiene should be part of the base module implementation, and shouldn't be left to higher-level module systems.
Re metacircular evaluator? I'm not sure what you mean by that, but I don't think so. I just redefined the scope-introducing forms, letting them expand into their ##* counterparts, while colouring all variable names. But yes, implementing hygiene is not something that I think should be left to higher-level module systems.
/Per