anchor.diff:  
   (defmacro def-spotfun (name &body body)
     `(defun ,name (idx cards)
  -     $!card (nth idx cards)
  +     $!(card (nth idx cards))
        ,@body))
   
   (def-spotfun flip-card
  
positive.code:   cards)
  
  (defun unsolvable-p (list)
    $island-1 nil
    $in-island nil
    $#island-fails () (if in-island
                          (if island-1
                              (clearf island-1 in-island)
                              t)
                          nil)
    (dolist (x list)
          (if (null x)
              (when (island-fails)
  
negative.code: 
  (defun brute-force-solve (cards &optional pre)
    (iter (for i from 0 to (length cards))
          $(next-pre (append (copy-list pre) (list i)))
          (handler-case
              (try-removes next-pre cards)
            (simple-error () (next-iteration)))
          (if (= (length cards) (length next-pre))
              (return-from brute-force-solve next-pre)
              $(recret (brute-force-solve cards next-pre))
              (when (not (null recret))
                (return-from brute-force-solve recret))))
    nil)
  