On Tue, Nov 22, 2011 at 10:47 AM, Stas Boukarev <stassats@gmail.com> wrote:
I don't see how that's a bug, "b" isn't required to be EQL to "b". It
can be, especially when coalesced by the compiler, but the reader
usually constructs a new string each time.

I agree. Compare that with

> (lambda (a) (declare (type (eql #1=foo) a)) (eql '#1# a))

#<bytecompiled-closure #<bytecompiled-function 0000000103cbfa00>>
> (compile 'foo *)

;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
FOO
NIL
NIL
> (foo 'foo)

T

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com