anchor.diff:  (defmethod* (setf rectangle-edges*)
     (x1 y1 x2 y2 (rectangle standard-rectangle))
     (let ((coords (slot-value rectangle 'coordinates)))
  -    (declare (type (array coordinate 4) coords))
  +    (declare (type (simple-array coordinate (4)) coords))
       (setf (aref coords 0) x1)
       (setf (aref coords 1) y1)
       (setf (aref coords 2) x2)
  
positive.code: (defmacro with-standard-rectangle* ((&key x1 y1 x2 y2) rectangle &body body)
    (with-gensyms (coords)
      `(let ((,coords (slot-value ,rectangle 'coordinates)))
         (declare (type (array coordinate 4) ,coords))
         (let (,@(and x1 `((,x1 (aref ,coords 0))))
  	     ,@(and y1 `((,y1 (aref ,coords 1))))
  	     ,@(and x2 `((,x2 (aref ,coords 2))))
  
negative.code: (defmacro with-standard-rectangle ((x1 y1 x2 y2) rectangle &body body)
    (with-gensyms (coords)
      `(let ((,coords (slot-value ,rectangle 'coordinates)))
         (declare (type (simple-array coordinate (4)) ,coords))
         (let ((,x1 (aref ,coords 0))
  	     (,y1 (aref ,coords 1))
  	     (,x2 (aref ,coords 2))
  