From: Marco Antoniotti
Subject: (package-nicknames "KEYWORD")
Date: 
Message-ID: <y6citfa4m32.fsf@octagon.mrl.nyu.edu>
What should this return?

Looks like CLisp, ACL, and CMUCL return
	("")
while LW and MCL return
	()

Cheers

-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.
From: Kent M Pitman
Subject: Re: (package-nicknames "KEYWORD")
Date: 
Message-ID: <sfwitfapi6p.fsf@world.std.com>
Marco Antoniotti <·······@cs.nyu.edu> writes:

> What should this return?
> 
> Looks like CLisp, ACL, and CMUCL return
> 	("")
> while LW and MCL return
> 	()

I'm not sure it's specified.  I wouldn't be surprised to find that both
are conforming.

One might argue that the standard's failure to mention a package nickname
of "" means it has none.  But then, I suppose, one might argue that the
standard's use of :foo implies one. (I personally prefer the former argument,
but I am hard-pressed to assert my interpretation to be uniquely correct.)

I think the standard should have said that :foo is handled by special
case and that "" is not a valid package name.  (Further it should have
said you can't delete or rename the package keyword.)

I find the issue per se to be close to irrelevant.  However, the issue I
find much more relevant is the related one of whether (find-package "") 
finds the keyword package.  This is the reason I think "" should be declared
not to be a valid package name; I'd like this to signal an error since
it's way more likely a symptom of a program error.  Any rational person
knowing they wanted the magic keyword package would have called it by name;
a program generating this name "by accident" is almost surely confused about
its nature since this is not just a degenerate case of another package.

On the other hand, I also think it's wrong that keywords are of type symbol.
I used to think they should be a distinct datatype from the others, and there
was originally (prior to CLTL1, in discussion about "the future") some 
consensus that we would try to move that way, but then it got dropped.  
Nowadays, though, I am 100% firmly convinced that the right solution was
to make "keywords" be what Java calls "canonical strings", so that they
could be used (among other things) as a symbol's print name, and so that
using the keyword for any symbol would not "create garbage".