anchor.diff:    (etypecase region 
       (region region)
       ((or rectangle vector) 
  -     (make-instance 'region :rectangle (ensure-rectangle region)))))
  +     (make-instance 'region :rectangle (ensure-rectangle region)))
  +    (list
  +     (make-instance 'region :polygon region))))
   
   (defbinding region-get-clipbox (region &optional (rectangle (make-instance 'rectangle))) nil
     (region region)
  
positive.code:   (dy int))
  
  (defbinding region-intersect (source1 source2) nil
    (source1 region)
    ((ensure-region source2) region))
  
  (defbinding region-union (source1 source2) nil
    (source1 region)
    ((ensure-region source2) region))
  
  (defbinding region-subtract (source1 source2) nil
    (source1 region)
    ((ensure-region source2) region))
  
  (defbinding region-xor (source1 source2) nil
    (source1 region)
    ((ensure-region source2) region))
  
  
  
negative.code:   (dx int)
    (dy int))
  
  #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0")
  (defbinding window-move-region (window region dx dy) nil
    (window window)
    ((ensure-region region) region)
    (dx int)
    (dy int))
  
  (defbinding window-reparent () nil
    (window window)
    (new-parent window)
  