anchor.diff:            (package-%nicknames package) new-nicknames))
     package)
   
  -(defmacro do-external-symbols ((var &optional (package '*package*) result-form) &body body)
  -  (let ((name-sym (gensym "name")))
  -    `(block nil
  -       (maphash (lambda (,name-sym ,var)
  -                  (declare (ignore ,name-sym))
  -                  ,@body)
  -                (package-%external-symbols (find-package-or-die ,package)))
  -       ,result-form)))
  -
   (defun shadow-one-symbol (symbol-name package)
     (multiple-value-bind (symbol presentp)
         (gethash symbol-name (package-%internal-symbols package))
  
positive.code:             (when (not valid) (return))
              (funcall fn symbol)))))
  
  ;; FIXME: Declares
  (defmacro do-all-symbols ((var &optional result-form) &body body)
    `(block nil
       (map-all-symbols (lambda (,var) (tagbody ,@body)))
       (let ((,var nil))
         (declare (ignorable ,var))
         ,result-form)))
  
  (defun find-all-symbols (string)
    (setf string (string string))
  
negative.code:             (when (not valid) (return))
              (funcall fn symbol)))))
  
  (defmacro do-external-symbols ((var &optional (package '*package*) result-form) &body body)
    (multiple-value-bind (body-forms declares)
        (parse-declares body)
      `(block nil
         (map-external-symbols (lambda (,var)
                                 (declare ,@declares)
                                 (tagbody ,@body-forms))
                               ,package)
         (let ((,var nil))
           (declare (ignorable ,var)
                    ,@declares)
           ,result-form))))
  
  (defun map-all-symbols (fn)
    (with-package-iterator (itr (list-all-packages) :internal :external)
  