anchor.diff:      (values final-min-x final-min-y final-max-x final-max-y)))
   
   (defmethod bounding-rectangle* ((design bezier-union))
  -  (multiple-value-bind (lx ly ux uy)
  -      (bounding-rectangle-of-areas (areas design))
  -    (transform-rectangle* (transformation design) lx ly ux uy)))
  +  (bounding-rectangle-of-areas (areas design)))
   
   (defmethod region-union ((r1 bezier-area) (r2 bezier-area))
     (make-instance 'bezier-union :areas (list r1 r2)))
   
   (defmethod region-union ((r1 bezier-union) (r2 bezier-area))
  -  (let ((tr (transformation r1)))
  -    (make-instance 'bezier-union 
  -      :areas (cons (untransform-region tr r2) (areas r1))
  -      :transformation tr)))
  +  (make-instance 'bezier-union
  +                 :areas (cons r2 (areas r1))))
   
   (defmethod region-union ((r1 bezier-area) (r2 bezier-union))
  -  (let ((tr (transformation r2)))
  -    (make-instance 'bezier-union 
  -      :areas (cons (untransform-region tr r1) (areas r2))
  -      :transformation tr)))
  +  (make-instance 'bezier-union
  +                 :areas (cons r1 (areas r2))))
   
   (defmethod region-union ((r1 bezier-union) (r2 bezier-union))
  -  (let ((tr1 (transformation r1))
  -        (tr2 (transformation r2)))
  -    (if (transformation-equal tr1 tr2)
  -        (make-instance 'bezier-union 
  -	  :areas (append (areas r1) (areas r2))
  -	  :transformation tr1)
  -        (let ((len1 (length (areas r1)))
  -              (len2 (length (areas r2))))
  -          (if (> len2 len1)
  -              (make-instance 'bezier-union
  -		:areas (append (mapcar (lambda (r) (untransform-region tr2 (transform-region tr1 r))) (areas r1)) (areas r2))
  -		:transformation tr2)
  -              (make-instance 'bezier-union
  -		:areas (append (mapcar (lambda (r) (untransform-region tr1 (transform-region tr2 r))) (areas r2)) (areas r1))
  -                             :transformation tr1))))))
  +  (make-instance 'bezier-union
  +                 :areas (append (areas r1) (areas r2))))
   
   (defclass bezier-difference (area bezier-design)
     ((%positive-areas :initarg :positive-areas :initform '() :reader positive-areas)
  
positive.code: 
  (defmethod reverse-path ((path bezier-area))
    (make-instance 'bezier-area
      :segments (reverse (mapcar #'reverse-segment (%segments path)))
      :transformation (transformation path)))
  
  ;;; slanting transformation are used by Metafont
  (defun make-slanting-transformation (slant)
    (make-transformation 1.0 slant 0.0 1.0 0.0 0.0))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code:   (let ((stream (postscript-medium-file-stream medium))
          (*transformation* (sheet-native-transformation (medium-sheet medium))))
      (postscript-actualize-graphics-state stream medium :color :line-style)
      (dolist (area (areas design))
        (%draw-bezier-area stream area))))
  
  (defmethod medium-draw-bezier-design*
      ((medium postscript-medium) (design bezier-difference))
  