Hi,
Yes, it seems that the package is not the place to be declaring nicknames. How can one know in advance, all preferred future designations?
I faced a situation similar to this (decisions being made too early) the other day when examining the use of tail-call optimization in a micro-Lisp compiled to Forth for use in embedded systems. Forth (ITC) has a little code-word header on each compiled verb. That code word points to executable behavior for the verb.
For machine (Assembly language) routines, it merely points to the following body of compiled code. But for higher level threaded code, it points to a kernel entry named DOCOL (do-colon) which pushes the current IP (akin to an instruction pointer) onto the return stack and then loads the IP with the address of the following words.
The problem here is that the decision to stack a return address should have been up to the call-site, not the callee. On its face, this prevents tail-call optimization. There are ways around it -- at the call site -- but it isn't pretty.
Some things are just better left to users, rather than attempting to anticipate every possible future use...
Dr. David McClain dbm@refined-audiometrics.com