
Dear Christophe, you wrote:
(What is "the" backquote expansion object, anyway?)
I'm not sure what you are asking here. The object is what ` expands into, which is undefined by the spec (as is the expansion of , and ,@). CLISP shows this behaviour: [35]> (defmacro showexp (form) (format t "~{~A~}~%" form)) SHOWEXP [36]> (showexp `(zoo)) BACKQUOTE(ZOO) NIL [37]> (showexp `(,@zoo)) BACKQUOTE((SPLICE ZOO)) NIL [38]> (showexp `(,zoo)) BACKQUOTE((UNQUOTE ZOO)) NIL Whereas SBCL seems to have some things going on under the hood: CL-USER(3): (showexp `(,@zoo)) debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread" {A723549}>: The value ZOO is not of type LIST. CL-USER(7): (showexp `(,@(list 1 2))) BACKQ-LIST/1/2/ NIL A CDR would fix certain parts of this behaviour. Leslie