anchor.diff:  (defparameter *r4* (make-bezier-curve* '(100 100 120 150 160 160 170 160)))
   
   (defparameter *r5* (convolute-regions *r2* *r4*))
  +|#
  
positive.code: (defmethod medium-draw-bezier-design* (medium design)
    (render-through-pixmap design medium))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Test cases
  
negative.code: 	 (split-points (find-split-points sides segment))
  	 (segments (split-segment segment split-points)))
      (loop for segment in segments 
  	  if first collect (area-at-point area (slot-value segment 'p0))
  	  collect (convert-primitive-segment-to-bezier-area 
  		   (polygon-points polygon) segment)
  	  collect (area-at-point area (slot-value segment 'p3)))))
  
  (defgeneric convolve-regions (area path))
  
  (defmethod convolve-regions ((area bezier-area) (path bezier-curve))
    (let ((polygon (polygonalize area)))
      (make-instance 
       'bezier-union :areas 
       (loop for segment in (%segments path)
  	   for first = t then nil
  	   append (convolve-polygon-and-segment area polygon segment first)))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  