anchor.diff:          (ascent (text-style-ascent text-style (sheet-medium stream)))
           (descent (text-style-descent text-style (sheet-medium stream)))
           (height (+ ascent descent))
  +	(transform (medium-transformation medium))
           left top right bottom)
  +   (setf (values point-x point-y)
  +	 (transform-position transform point-x point-y))
      (ecase align-x
        (:left (setq left point-x
                     right (+ point-x width)))
  
positive.code: 
  ;;;; Patterns
  
  (def-grecording draw-pattern (() pattern x y)
    (let ((width (pattern-width pattern))
          (height (pattern-height pattern)))
      (values x y (+ x width) (+ y height))))
  
  (defmethod* (setf output-record-position) :around (nx ny (record draw-pattern-output-record))
  
negative.code: 			      center-x center-y
  			      radius-1-dx radius-1-dy radius-2-dx radius-2-dy
  			      start-angle end-angle filled)
    (let ((transform (medium-transformation medium)))
      (setf (values center-x center-y)
  	  (transform-position transform center-x center-y))
      (setf (values radius-1-dx radius-1-dy)
  	  (transform-distance transform radius-1-dx radius-1-dy))
      (setf (values radius-2-dx radius-2-dy)
  	  (transform-distance transform radius-2-dx radius-2-dy))
      (multiple-value-bind (min-x min-y max-x max-y)
  	(bounding-rectangle* (make-ellipse* center-x center-y
  					    radius-1-dx radius-1-dy
  					    radius-2-dx radius-2-dy
  					    :start-angle start-angle
  					    :end-angle end-angle))
        (if filled
  	  (values min-x min-y max-x max-y)
  	  (let ((border (graphics-state-line-style-border graphic medium)))
  	    (values (- min-x border)
  		    (- min-y border)
  		    (+ max-x border)
  		    (+ max-y border)))))))
  
  (defmethod* (setf output-record-position) :around
      (nx ny (record draw-ellipse-output-record))
  