anchor.diff:      (let ((dx (- nx x1))
             (dy (- ny y1)))
         (setf x1 nx  y1 ny
  -            x2 (+ x2 dx)  y2 (+ y2 dy)))))
  +            x2 (+ x2 dx)  y2 (+ y2 dy))))
  +  record)
   
   (defmethod* (setf output-record-position) :around
       (nx ny (record basic-output-record))
  
positive.code: (defmethod invoke-with-new-output-record ((stream output-recording-stream)
                                            continuation record-type
                                            &rest initargs
                                            &key parent
  					  &allow-other-keys)
    (stream-close-text-output-record stream)
    (unless parent (setq parent (stream-current-output-record stream)))
    (let ((new-record (apply #'make-instance record-type :parent parent initargs)))
      (letf (((stream-current-output-record stream) new-record))
        ;; Should we switch on recording? -- APD
        (funcall continuation stream new-record)
  
negative.code: 
  ;;;; Implementation
  
  (defclass basic-output-record (standard-bounding-rectangle output-record)
    ((parent :initarg :parent ; XXX
  	   :initform nil
             :accessor output-record-parent)) ; XXX
    (:documentation "Implementation class for the Basic Output Record Protocol."))
  
  (defmethod initialize-instance :after ((record basic-output-record)
  