anchor.diff:  (defmethod collide ((thopter thopter) event)
     (with-slots (parent offset depth veloc health firepower missiles) thopter
       (typecase (event-hit event)
  -      (enemy-bullet (decf health))
  -      (enemy        (decf health 8))
  -      (explosion    (decf health))
  -      (health-pack  (incf health 2))
  +      (enemy-bullet  (decf health))
  +      (enemy-missile (decf health))
  +      (enemy         (decf health 8))
  +      (explosion     (decf health))
  +      (health-pack   (incf health 2))
         (upgrade-bullet (incf firepower))
         (upgrade-missile (incf missiles)))
       (when (and parent (<= health 0))
  
positive.code:       (detach parent missile))))
  
  (defmethod collide ((missile enemy-missile) event)
    (with-slots (parent offset size depth veloc) missile
      (when (and parent     (and (typep missile 'enemy-missile)
                                 (typep (event-hit event) 'thopter)))
        (let ((explosion (make-instance 'anim :name :explosion)))
          (make-instance 'explosion :parent parent
                         :offset (+ offset (/ size 2) (/ (size explosion) -2))
  
negative.code:     (detach (parent bullet) bullet)))
  
  (defmethod collide ((missile missile) event)
    (with-slots (parent offset size depth veloc health) missile
      (typecase (event-hit event)
        (enemy-bullet  (decf health))
        (enemy-missile (decf health))
        (enemy         (decf health 8))
        (explosion     (decf health)))
      (when (and parent (<= health 0))
        (let ((explosion (make-instance 'anim :name :explosion)))
          (make-instance 'explosion :parent parent
                         :offset (+ offset (/ size 2) (/ (size explosion) -2))
  