
Thank you for your comments.
* The proposal requires the presence of a CDR-NN package. Such a proposal should be made separately. FTTB if CDR-14 is used, only the CDR-NN feature should be provided. I would be in favor of a new CDR stating that a CDR-XX nickname could be added to a package implementing a given feature.
I thought that maybe I don't want to create too many proposals at once. I see, I will split.
* The proposal as is may not be portably implemented by a third party without resorting to implementation support which may or may not be there. The problematic operators are WITH-PARENT-ENVIRONMENT and ENVIRONMENT-ENTRY-NAMES. Do you see any way to provide it in a simple (read: non SBCL) way?
Finally, COPY-ENVIRONMENT may and LEXICAL-ENVIRONMENT also be problematic.
Note that B-level and C-level support requires some properties of underlying implementation that do not currently hold for many popular ones. Also note that I want to provide common names for much more functionality than I want to require. It is enough to have WITH-AUGMENTED-ENVIRONMENT for B-level complieance, and COPY-ENVIRONMENT (or standalone AUGMENT-ENVIRONMENT) is not required even on the C-level. It is purely a «please tell me if you already provide this». Frankly, I think SLIME wants to do something that boils down to ability to define ENVIRONMENT-ENTRY-NAMES, so that shouldn't be too bad. LEXICAL-ENVIRONMENT has very weak requirements, I think on most implementations it can be defined by a third-party library. WITH-PARENT-ENVIRONMENT is definitely completely optional — on the other hand, if the implementation never tracks parent environments, it is OK to always have NIL there.