anchor.diff:  				      :align-y :top))))
   	  (record-stroke stroke stroke-parts part-widths cursor-x cursor-y
   			 (+ width cursor-x) (+ text-style-height cursor-y)
  -			 baseline))))))
  +			 t baseline))))))
   
   (defun draw-stroke (stream view stroke cursor-x cursor-y)
     "Draw `stroke' on `stream' at (`cursor-x', `cursor-y'). Nothing
  
positive.code:       (setf (line-end-offset line) (stroke-end-offset stroke)))))
  
  (defun record-stroke (stroke parts widths x1 y1 x2 y2
                        &optional (center (/ (- y2 y1) 2)))
    "Record the fact that `stroke' has been drawn, that it consists
  of parts `parts' with the widths `widths', and that it
  covers the specified area on screen. Updates the dirty- and
  modified-bits of `stroke' as well as the dimensions."
    (let ((dimensions (stroke-dimensions stroke)))
      (setf (stroke-dirty stroke) nil
            (stroke-modified stroke) nil
  	  (stroke-parts stroke) parts
            (stroke-widths stroke) widths
  
negative.code:            (text-style-descent (text-style-descent roman-text-style (sheet-medium stream)))
             (text-style-height (+ text-style-ascent text-style-descent)))
        (with-accessors ((x1 x1) (x2 x2) (center center)) dimensions
          (multiple-value-bind (width baseline stroke-parts part-widths)
  	    (if (stroke-modified stroke)
  		(calculate-stroke-width stroke-string merged-text-style stream cursor-x)
  		(values (- x2 x1) center parts widths))
  	  (clear-rectangle* stream cursor-x cursor-y
  			    (+ cursor-x width) (+ cursor-y text-style-height
  						  (stream-vertical-spacing stream)))
  