anchor.diff:      (%register-readtable string-designator read-table)
       read-table))
   
  -
  -;;; FIXME: This is completely not working as it's supposed to be. I
  -;;; assumed semantics of CL:COPY-READTABLE that don't exist.
  -(defun merge-readtables (result-table &rest named-readtable-designators)
  +(defun merge-readtables-into (result-table &rest named-readtable-designators)
     "Copy the contents of each readtable in NAMED-READTABLE-DESIGNATORS,
   in turn, into RESULT-TABLE.  Because the readtables are merged in
   turn, macro definitions in readtables later in the list will overwrite
   definitions in readtables listed earlier.  Notice that the /readtable
   case/ is also subject of the merge operation."
  -  (setf result-table (ensure-readtable result-table))
  -  (dolist (table (mapcar #'ensure-readtable named-readtable-designators))
  -    (setf result-table (copy-readtable table result-table)))
  -  result-table)
  +  (flet ((merge-into (rt1 rt2)
  +	   (%with-readtable-iterator (rt2-iter rt2)
  +	     (loop
  +	      (multiple-value-bind (more? char reader-fn disp? table) (rt2-iter)
  +		(unless more? (return))
  +		(unless (standard-macro-char-p char rt2)
  +		  (let ((non-terminating-p (nth-value 1 (get-macro-character char rt2))))
  +		    (set-macro-character char reader-fn non-terminating-p rt1)))
  +		(when disp?
  +		  (loop for (subchar . subfn) in table do
  +			(unless (standard-dispatch-macro-char-p char subchar rt2)
  +			  (set-dispatch-macro-character char subchar subfn rt1)))))))
  +	   rt1))
  +    (setf result-table (ensure-readtable result-table))
  +    (dolist (table (mapcar #'ensure-readtable named-readtable-designators))
  +      (merge-into result-table table))
  +    result-table))
   
   (defun list-all-named-readtables ()
     "Returns a list of all registered readtables. The returned list is
   guaranteed to be fresh, but may contain duplicates."
     (mapcar #'ensure-readtable (%list-all-readtable-names)))
   
  -
  + 
   (deftype string-designator ()
     `(or string symbol character))
  
positive.code:   ;;; is out of scope of this library, though. So we just threaten
    ;;; with nasal demons.
    ;;;
    (defvar *standard-readtable* (copy-readtable nil)))
  
  (defparameter *reserved-readtable-names* '(nil :standard :current))
  
  
negative.code:   form)
  
  
  