anchor.diff:  			 (transform-region transformation p1)
   			 (transform-region transformation p2)
   			 (transform-region transformation p3))))
  -
  -(defmethod transform-region (transformation (path bezier-curve))
  -  (make-instance 'bezier-curve
  -                 :segments (let ((segments (%segments path)))
  -                             (map (type-of segments)
  -                                  (lambda (segment)
  -                                    (transform-segment transformation segment))
  -                                  (%segments path)))))
   
   (defmethod region-union ((r1 bezier-curve) (r2 bezier-curve))
     (let ((p (slot-value (car (last (%segments r1))) 'p3))
  
positive.code:       (let ((tr (make-instance 'climi::standard-translation :dx dx :dy dy)))
          (multiple-value-prog1
              (call-next-method))
          (setf (output-record-translation record) tr)))))
  
  (defmethod replay-output-record :around ((record draw-bezier-design-output-record) stream
                                           &optional region x-offset y-offset)
    (declare (ignore x-offset y-offset region))
    (with-slots (design output-record-translation) record
      (let ((old-design design))
        (setf design (if output-record-translation
                         (transform-region output-record-translation design)
                         design))
        (prog1
            (call-next-method)
          (setf design old-design)))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 
  (defgeneric medium-draw-bezier-design* (stream design))
  
  (defmethod medium-draw-bezier-design* :around ((medium climi::transform-coordinates-mixin) design)
    (let ((tr (medium-transformation medium)))
      (let ((tr-design (transform-region tr design)))
        (call-next-method medium tr-design))))
  
  ;;; output recording
  
  (defclass translatable-record-mixin ()
    ((output-record-translation :accessor output-record-translation :initform nil)))
  