anchor.diff:  
   (declaim (inline hash-coords))
   (defun hash-coords (x1 y1 x2 y2)
  -  (declare (type real x1 y1 x2 y2))	;XXX Someday this should be float
  +  (declare (type coordinate x1 y1 x2 y2))
     (let ((hash-val 0))
         (declare (type fixnum hash-val))
         (labels ((rot4 (val)
  
positive.code:     (let ((res +nowhere+))
        (loop for (r) in erase-overlapping do (setf res (region-union res r)))
        (loop for (r) in move-overlapping do (setf res (region-union res r)))
        (replay history stream res)) ))
  
  (defclass updating-stream-state (complete-medium-state)
    ((cursor-x :accessor cursor-x :initarg :cursor-x :initform 0)
  
negative.code:                        (dy (- cy sy)))
                     (unless (zerop dy)
                       (move-output-record record dx dy) )
                     (let ((tag (cond
  				((= dx dy 0)
  				 (when *trace-updating-output*
  				   (format *trace-output* "clean ~S~%" record))
  				 :clean)
  				(t
  				 (when *trace-updating-output*
  				   (format *trace-output* "moved ~S~%" record))
  				 :moved))))
                       (setf (output-record-dirty record) tag)
                       (setf (output-record-parent record) nil)
                       (map-over-updating-output #'(lambda (r)
  