anchor.diff:    (if (listp y)
         `(setf ,(wa-name x) (lambda (,@y) ,@(cl-tree body)))
         (let* ((wn (wa-name x)) (cn (cl-package-delimiter y)))
  -        (if (symbol-function cn)
  -            `(setf ,wn #',cn)
  -            `(setf ,wn ,cn)))))
  +        (cond ((macro-function cn)  `(setf ,wn ,(macro-function cn)))
  +              ((symbol-function cn) `(setf ,wn ,(symbol-function cn)))
  +              (t                    `(setf ,wn ,cn))))))
   
   ; call -----------------------------------------------------------------------
   
  
positive.code:                 do (let ((cl (wc x nil)))
                       (eval cl)
                       (if debug (format op "#|~%~S~%|#~%" x))
                       (format op "~S~2%" cl)))
            (format op "~S~%" `(setf *wa-gensym-count* ,*wa-gensym-count*)))))))
  
negative.code: 
  (defun careq (x y)
    (and (consp x) (eq (car x) y)))
  
  ; literal --------------------------------------------------------------------
  
  