anchor.diff:  
   (defun brute-force-solve (cards &optional pre)
     (iter (for i from 0 to (length cards))
  -        $next-pre (append (copy-list pre) (list i))
  +        $(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)
  +            $(recret (brute-force-solve cards next-pre))
               (when (not (null recret))
                 (return-from brute-force-solve recret))))
     nil)
  
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: 
  (defmacro def-spotfun (name &body body)
    `(defun ,name (idx cards)
       $!(card (nth idx cards))
       ,@body))
  
  (def-spotfun flip-card
  