anchor.diff:  
   (defmethod distance ((c circle) (p vektor))
     (values (- (distance (center c) p) (radius c))
  -	  (add (center c) 
  +	  (add (center c)
   	       (normalize (subtract p (center c)) (radius c)))))
   
   (defmethod distance ((p vektor) (line line))
  
positive.code:   (min (distance p (make-line (make-point (xmin b) (ymin b)) (make-point (xmax b) (ymin b))))
         (distance p (make-line (make-point (xmax b) (ymin b)) (make-point (xmax b) (ymax b))))
         (distance p (make-line (make-point (xmax b) (ymax b)) (make-point (xmin b) (ymax b))))
         (distance p (make-line (make-point (xmin b) (ymax b)) (make-point (xmin b) (ymin b))))))       
  
  (defmethod contains? ((b bounding-box) (p vektor))
    (and (and (>= (x p) (xmin b)) (<= (x p) (xmax b)))
         (and (>= (y p) (ymin b)) (<= (y p) (ymax b)))))
  
  (defmethod intersects? ((a bounding-box) (b bounding-box) &key)
    (and 
     (or (and (>= (xmin a) (xmin b)) (<= (xmin a) (xmax b)))
         (and (>= (xmin b) (xmin a)) (<= (xmin b) (xmax a))))
     (or (and (>= (xmin a) (xmin b)) (<= (xmin a) (xmax b)))
  
negative.code:     ; is a point of q in p => q completely in p => return q
      (when (and check-inclusion (contains? p (first (corners q))))
        (return-from intersects? q)))
    nil)
  