anchor.diff:    (style nil))
   
   (defconstant +default-stroke-drawer-dispatcher+
  -  #'(lambda (stream view stroke cursor-x cursor-y default-drawing-fn)
  -      (funcall default-drawing-fn stream view stroke cursor-x cursor-y))
  -  "A simple function of six arguments that simply calls the first
  -argument as a function with the remaining five arguments. Used as
  -the default drawing-function of `drawing-options' objects.")
  +  #'(lambda (stream view stroke cursor-x cursor-y default-drawing-fn draw)
  +      (funcall default-drawing-fn stream view stroke cursor-x cursor-y draw))
  +  "A simple function of seven arguments that simply calls the
  +first argument as a function with the remaining sex
  +arguments. Used as the default drawing-function of
  +`drawing-options' objects.")
   
   (defstruct drawing-options
     "A set of options for how to display a stroke."
  
positive.code:   (widths)
    (parts))
  
  (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
  
negative.code:     (clear-rectangle* stream line-x2 line-y1
                        (bounding-rectangle-width stream)
                        (+ line-y1 (max line-height old-line-height)
                           (stream-vertical-spacing stream)))))
  
  (defun draw-line-strokes (stream view initial-pump-state
                            start-offset cursor-x cursor-y)
    "Pump strokes from `view', using `initial-pump-state' to begin
  with, and draw them on `stream'. The line is set to start at the
  buffer offset `start-offset', and will be drawn starting
  at (`cursor-x', `cursor-y')."
    (let* ((line (line-information view (displayed-lines-count view)))
           (old-line-height (dimensions-height (line-dimensions line)))
           (old-line-width (dimensions-width (line-dimensions line)))
           (orig-x-offset cursor-x)
           (offset-change (- start-offset (line-start-offset line)))
           (line-spacing (stream-vertical-spacing stream)))
      (setf (line-start-offset line) start-offset
            (line-stroke-count line) 0)
      ;; So yeah, this is fairly black magic, but it's not actually
      ;; ugly, just complex.
      (multiple-value-bind (line-width line-height baseline pump-state)
          ;; Pump all the line strokes and calculate their dimensions.
          (loop for index from 0
             for stroke = (line-stroke-information line index)
             for stroke-dimensions = (stroke-dimensions stroke)
             for pump-state = (put-stroke view line initial-pump-state offset-change) then
             (put-stroke view line pump-state offset-change)
             do (update-stroke-dimensions stream view stroke cursor-x cursor-y)
             (setf cursor-x (x2 stroke-dimensions))
             maximizing (dimensions-height stroke-dimensions) into line-height
             maximizing (+ (center stroke-dimensions) cursor-y) into baseline
             summing (dimensions-width stroke-dimensions) into line-width
             when (stroke-at-end-of-line (buffer view) stroke)
             return (values line-width line-height baseline pump-state))
        ;; Now actually draw them in a way that makes sure they all
        ;; touch the bottom of the line.
        (loop with last-clear-x = orig-x-offset
           for stroke-index below (line-stroke-count line)
           for stroke = (aref (line-strokes line) stroke-index)
           for stroke-dimensions = (stroke-dimensions stroke)
           do (unless (= baseline (+ cursor-y (center stroke-dimensions)))
                (invalidate-stroke stroke))
           (when (stroke-dirty stroke)
             (clear-rectangle* stream (x1 stroke-dimensions) cursor-y
                               (x2 stroke-dimensions)
                               (+ cursor-y line-height line-spacing))
             (setf last-clear-x (x2 stroke-dimensions)))
           (draw-stroke stream view stroke
                        (x1 stroke-dimensions) baseline)
           finally (progn (end-line-cleaning-up stream line orig-x-offset cursor-y
                                                line-width old-line-width
                                                line-height old-line-height)
                          (incf (displayed-lines-count view))
                          (return (values pump-state line-height)))))))
  
  (defun clear-stale-lines (pane view)
    "Clear from the last displayed line to the end of `pane'."
  