anchor.diff:    "Calculate the width information of `stroke-string' when
   displayed with `text-style' (which must be fully specified) on
   `stream', starting at the horizontal device unit offset
  -`x-position'. Four values will be returned: the total width of
  -the stroke, the baseline, the parts of the stroke and the widths
  -of the parts of the stroke."
  +`x-position'. Three values will be returned: the total width of
  +the stroke, the parts of the stroke and the widths of the parts
  +of the stroke."
     (loop with parts = (analyse-stroke-string stroke-string)
        with width = 0
  -     with baseline = 0
        with widths = (make-array (length parts) :adjustable t :fill-pointer t)
        with tab-width
        for (start end object) in parts
  
positive.code: associated dimensions. Also clear from the bottom of strokes to
  the bottom of the line, and from the end of the line to the end
  of the sheet."
    (end-line line line-x1 line-y1 line-width line-height)
    (with-accessors ((line-x1 x1) (line-y1 y1)
                     (line-x2 x2) (line-y2 y2)) (line-dimensions line)
      ;; If a has a lesser height than the line, clear from the bottom
      ;; of the stroke to the bottom of the line, to avoid artifacts
      ;; left over from prefvious redisplays.
      (do-displayed-line-strokes (stroke line)
        (let ((stroke-dimensions (stroke-dimensions stroke)))
          (with-accessors ((stroke-x1 x1) (stroke-y1 y1)
                           (stroke-x2 x2) (stroke-y2 y2)) stroke-dimensions
            (when (> line-height (dimensions-height stroke-dimensions))
              (clear-rectangle* stream stroke-x1 stroke-y2
                                stroke-x2 (+ stroke-y2 (- line-height
                                                          (dimensions-height stroke-dimensions))
                                             (stream-vertical-spacing stream)))))))
      ;; Reset the dimensions of undisplayed lines.
      (do-undisplayed-line-strokes (stroke line)
        (let ((stroke-dimensions (stroke-dimensions stroke)))
  
negative.code:   (widths)
    (parts))
  
  (defun stroke-at-end-of-line (buffer stroke)
    "Return true if the end offset of `stroke' is at the end of a
  line in `buffer'. Otherwise, return nil. The end offset of
  `stroke' must be a valid offset for `buffer' or an error will be
  signalled."
    (offset-end-of-line-p buffer (stroke-end-offset stroke)))
  
  (defstruct (displayed-line (:conc-name line-))
    "A line on display. A line delimits a buffer region (always
  bounded by newline objects or border beginning/end) and contains
  