anchor.diff:    (with-gensyms (r p)
       `(eval-when (:compile-toplevel :load-toplevel :execute)
          (let  ((,r ,rt)
  -              (,p ',package-designator))
  +              (,p ,(if (packagep package-designator)
  +                       (package-name package-designator)
  +                       (string package-designator))))
            (unless ,r (setq ,r (package-rt ,p)))
            (prog1 (setq *package* (find-package ,p))
              (setq *readtable* ,r))))))
  
positive.code:   `(setf (gethash (find-package ,package-designator) *package-rts*)
           ,rt))
  
  (defmacro setup-package-rt ((string-designator &optional (rt '(ls:rt)))
                                                            &body chars-functions)
    "Set package's default *readtable* to a modified copy of readtable-expression.
  
    For use with in-package/rt.
  
  
negative.code:   form). Use (#\!) to set it to a terminating macro character, and
    sets #; to the hypothetical dispatching macro character for
    commenting the following form. "
    (let ((package-string (if (packagep package-designator)
                              (package-name package-designator)
                              (string package-designator))))
      `(eval-when (:compile-toplevel :load-toplevel :execute)
         (setf (package-rt ,package-string)
               (copy-readtable ,rt-form))
         (in-package/rt ,package-string)
         ,@(loop for (chars function) on chars-functions by #'cddr
                 collect
                 (cond ((and (consp chars) (cdr chars))
                        `(set-dispatch-macro-character ,(car chars)
                                                       ,(cadr chars)
                                                       ,function))
                       ((or (characterp chars) (listp chars))
                        `(set-macro-character
                          ,(if (consp chars)
                               (car chars)
                               chars)
                          ,function ,(not (consp chars))))
                       ((symbolp chars)
                        `(setf (,(find-symbol (symbol-name chars) :ls)
                                 *readtable*)
                               ,function)))))))
  