anchor.diff:  position is relative to the stream, where (0,0) is (initially) the
   upper-left corner of the stream."))
   
  -(defgeneric* (setf output-record-position) (x y record))
  +(defgeneric* (setf output-record-position) (x y record)
  +  (:documentation
  +   "Changes the x and y position of the RECORD to be X and Y, and
  +updates the bounding rectangle to reflect the new position (and saved
  +cursor positions, if the output record stores it). If RECORD has any
  +children, all of the children (and their descendants as well) will be
  +moved by the same amount as RECORD was moved. The bounding rectangles
  +of all of RECORD's ancestors will also be updated to be large enough
  +to contain RECORD."))
   
   #+:cmu(declaim (ftype (function (output-record) (values integer integer))
   		      output-record-start-cursor-position))
  
positive.code:      &allow-other-keys))
  
  (defgeneric make-design-from-output-record (record))
  
  
  
negative.code:   (letf (((stream-recording-p stream) record)
  	 ((stream-drawing-p stream) draw))
      (funcall continuation stream)))
  
  (defmethod invoke-with-new-output-record ((stream output-recording-stream)
                                            continuation record-type
  