anchor.diff:      :reader bounding-box)))
   
   (defmethod initialize-instance :after ((p polygon) &key)
  -  (setf (slot-value p 'lines) 
  -	(loop 
  +  (setf (slot-value p 'lines)
  +	(loop
   	 :for i :below (length (corners p)) :collect
   	 (make-line (elt (corners p) i) (elt-mod (corners p) (+ i 1)))))
     (setf (slot-value p 'bounding-box)
  
positive.code: (defmethod intersects? ((p polygon) (q polygon) &key (check-inclusion nil))
    ; check if bounding boxes intersect
    (when (intersects? (bounding-box p) (bounding-box q))
      
      ; check all lines for intersections
      ; return t if one exists
      (dolist (p-line (lines p))
  
negative.code: 	       (cond ((> s 1)
  		      (values (distance p b)
  			      lot))
  		     ((< s 0)
  		      (values (distance p a)
  			      lot))
  		     (t
  		      (values (distance p lot)
  			      lot))))
        ; line is degenerated
  