anchor.diff:  ;shifted left for free every time it happens to empty out.
   
   (defun enqueue (xp type kind &optional arg)
  -  (incf (Qright xp) #.queue-entry-size)
  -  (when (> (Qright xp) #.(- queue-min-size queue-entry-size))
  +  (incf (Qright xp) +queue-entry-size+)
  +  (when (> (Qright xp) (- +queue-min-size+ +queue-entry-size+))
       (replace (queue xp) (queue xp) :start2 (Qleft xp) :end2 (Qright xp))
       (setf (Qright xp) (- (Qright xp) (Qleft xp)))
       (setf (Qleft xp) 0))
  
positive.code: 
  ;               ---- XP STRUCTURES, AND THE INTERNAL ALGORITHM ----
  
  (eval-when (eval load compile) ;not used at run time.
    (defvar block-stack-entry-size 1)
    (defvar prefix-stack-entry-size 5)
    (defvar queue-entry-size 7)
    (defvar buffer-entry-size 1)
    (defvar prefix-entry-size 1)
    (defvar suffix-entry-size 1))
  
  (eval-when (eval load compile) ;used at run time
    (defvar block-stack-min-size #.(* 35. block-stack-entry-size))
    (defvar prefix-stack-min-size #.(* 30. prefix-stack-entry-size))
    (defvar queue-min-size #.(* 75. queue-entry-size))
    (defvar buffer-min-size 256.)
    (defvar prefix-min-size 256.)
    (defvar suffix-min-size 256.))
  
  (defstruct (xp-structure (:conc-name nil) (:print-function describe-xp))
    (BASE-STREAM nil) ;;The stream io eventually goes to.
    LINEL ;;The line length to use for formatting.
    LINE-LIMIT ;;If non-NIL the max number of lines to print.
    LINE-NO ;;number of next line to be printed.
    CHAR-MODE ;;NIL :UP :DOWN :CAP0 :CAP1 :CAPW
    CHAR-MODE-COUNTER ;depth of nesting of ~(...~)
    DEPTH-IN-BLOCKS
     ;;Number of logical blocks at QRIGHT that are started but not ended.
    (BLOCK-STACK (make-array #.block-stack-min-size)) BLOCK-STACK-PTR
     ;;This stack is pushed and popped in accordance with the way blocks are
     ;;nested at the moment they are entered into the queue.  It contains the
     ;;following block specific value.
     ;;SECTION-START total position where the section (see AIM-1102)
     ;;that is rightmost in the queue started.
    (BUFFER (make-array #.buffer-min-size
                        :element-type 'character))
     CHARPOS BUFFER-PTR BUFFER-OFFSET
     ;;This is a vector of characters (eg a string) that builds up the
     ;;line images that will be printed out.  BUFFER-PTR is the
     ;;buffer position where the next character should be inserted in
  
negative.code: (defun attempt-to-output (xp force-newlines? flush-out?)
    (do () ((> (Qleft xp) (Qright xp))
  	  (setf (Qleft xp) 0)
  	  (setf (Qright xp) (- +queue-entry-size+))) ;saves shifting
      (case (Qtype xp (Qleft xp))
        (:ind
         (unless (misering? xp)
  