Andy Wingo wrote: > I don't know. Like most of you, I've been programming scheme for a > while, but the implications of lexical scope on keywords and modules > have not even crossed my mind until an R6RS user reported a bug in our > R6RS implementation, to this effect.
Folks, why do we at all match keywords (e.g. "else") lexically instead of textually? The ability to rename keyword on export is one stated benefit, but I'm not sure this was/will ever be used. Moreover many implementations have keyword and optional arguments, and I never heard anyone complaining that you can't rename them. Simplicity of syntax-rules is another benefit: now we've got one list of identifiers that are matched lexically, we'd need one extra list for those matched textually. There are also historical reasons, i.e. it worked fine in R5RS where no modules existed (provided you don't shadow "else" locally). Any other reasons? Are these reasons compelling enough to go through the trouble of binding & exporting auxiliary keywords in modules, risk local shadowing, etc? I know WG1 voted on the issue, but I don't remember any discussion on it. _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
