anchor.diff:      (multiple-value-bind (left top right bottom)
           (text-bounding-rectangle* medium string
                                     :align-x align-x :align-y align-y
  -                                  :start start :end end
                                     :text-style text-style)
         (if transform-glyphs
             (enclosing-transform-polygon transformation (list (+ point-x left)  (+ point-y top)
  
positive.code:     ((record draw-text-output-record) stream
       &optional (region +everywhere+) (x-offset 0) (y-offset 0))
    (declare (ignore x-offset y-offset region))
    (with-slots (string point-x point-y start end align-x align-y toward-x
                 toward-y transform-glyphs transformation)
        record
      (let ((medium (sheet-medium stream)))
        (medium-draw-text* medium string point-x point-y start end align-x
                           align-y toward-x toward-y transform-glyphs))))
  
  (defrecord-predicate draw-text-output-record
  
negative.code:     finally (return (values min-x min-y max-x max-y))))
  
  (def-grecording (draw-text :replay-fn nil) (gs-text-style-mixin gs-transformation-mixin)
      ((string (subseq string (or start 0) (or end (length string))))
       (start  nil nil)
       (end    nil nil)
       point-x point-y align-x align-y
       toward-x toward-y transform-glyphs)
    ;; FIXME!!! Text direction.
    (let* ((transformation (medium-transformation medium))
  