anchor.diff:  	   (error "The name ~S does not designate any readtable." designator))
   	  (t (setf (find-readtable designator) (ensure-readtable default))))))
   
  -
  + 
   (defun register-readtable (string-designator read-table)
     "Associate READ-TABLE as the readtable associated with STRING-DESIGNATOR."
  
positive.code:   (flet ((process-option (option var)
             (destructure-case option
               ((:merge &rest readtable-designators)
  	      `(setf ,var (merge-readtables ,var ,@readtable-designators)))
               ((:dispatch-macro-char disp-char sub-char function)
                `(set-dispatch-macro-character ,disp-char ,sub-char ,function ,var))
               ((:macro-char char function &optional non-terminating-p)
  
negative.code:   ;;; is out of scope of this library, though. So we just threaten
    ;;; with nasal demons.
    ;;;
    (defvar *standard-readtable* (%standard-readtable)))
  
  (defun standard-macro-char-p (char rt)
    (multiple-value-bind (rt-fn rt-flag) (get-macro-character char rt)
      (multiple-value-bind (std-fn std-flag) (get-macro-character char *standard-readtable*)
        (and (eq rt-fn std-fn)
  	   (eq rt-flag std-flag)))))
  
  (defun standard-dispatch-macro-char-p (disp-char sub-char rt)
    (flet ((non-terminating-p (ch rt) (nth-value 1 (get-macro-character ch rt))))
      (and (eq (non-terminating-p disp-char rt)
  	     (non-terminating-p disp-char *standard-readtable*))
  	 (eq (get-dispatch-macro-character disp-char sub-char rt)
  	     (get-dispatch-macro-character disp-char sub-char *standard-readtable*)))))
  
  (defparameter *reserved-readtable-names* '(nil :standard :current))
  
  