anchor.diff:  updating-output-parent above this one in the tree.")
      ;; Results of (setf output-record-position) while updating
      (explicit-moves :accessor explicit-moves)
  +   (old-bounds :accessor old-bounds
  +	       :initform (make-bounding-rectangle 0.0d0 0.0d0 0.0d0 0.0d0)
  +	       :documentation "Holds the old bounds of an updating output
  + record if that can no longer be determined from the old-children.")
      ;; on-screen state?
      ))
   
  
positive.code:     (explode-map-hash map)
      (setf (tester-function map) :mismatch)))
  
  (defun get-from-map (map value test)
    (when (eq (tester-function map) 'none)
      (return-from get-from-map nil))
  
negative.code: 	 (visible-region (pane-viewport-region stream))
  	 (old-children (if (slot-boundp record 'old-children)
  			   (old-children record)
  			   nil))
  	 (old-bounds (old-bounds record)))
      (unless (or (null visible-region)
  		(region-intersects-region-p visible-region record)
  		(and old-children
  		     (region-intersects-region-p visible-region old-bounds)))
        (return-from compute-difference-set (values nil nil nil nil nil)))
      ;; XXX This means that compute-difference-set can't be called repeatedly on
      ;; the same tree; ugh. On the other hand, if we don't clear explicit-moves,
  