anchor.diff:  
   ;;----------------------------------------------------------------------
   
  -(let* ((sudoku #2A((x x x 8 x 4 2 x x)
  -                   (6 x 8 x 2 x x x 4)
  -                   (2 1 x 6 5 3 x x 8)
  -                   (x 7 x 2 x 6 x 9 x)
  -                   (x x x x 3 x 1 x x)
  -                   (4 2 3 x x 9 x 5 7)
  -                   (x 6 x 4 1 5 7 x x)
  -                   (x x 7 x x 8 3 x x)
  -                   (x 5 9 x x x x 1 x))))
  +(defparameter *royco-minut-soup* #2A((x x x 8 x 4 2 x x)
  +                                     (6 x 8 x 2 x x x 4)
  +                                     (2 1 x 6 5 3 x x 8)
  +                                     (x 7 x 2 x 6 x 9 x)
  +                                     (x x x x 3 x 1 x x)
  +                                     (4 2 3 x x 9 x 5 7)
  +                                     (x 6 x 4 1 5 7 x x)
  +                                     (x x 7 x x 8 3 x x)
  +                                     (x 5 9 x x x x 1 x)))
  +
  +(defparameter *20-minutes/1499/facile* #2A((2 x 4 1 5 x 8 7 x)
  +                                           (x x x 3 x x x 9 1)
  +                                           (x 7 x 8 6 x x x 4)
  +                                           (x x 3 x 2 1 x 8 x)
  +                                           (x x 1 x 8 x 3 x x)
  +                                           (x 8 x 4 3 x 9 x x)
  +                                           (9 x x x 1 3 x 6 x)
  +                                           (3 2 x x x 4 x x x)
  +                                           (x 1 7 x 9 8 4 x 3)))
  +
  +(defparameter *metrofrance/694/moyen* #2A((x x 1 2 x x x x 8)
  +                                          (x x x x 5 1 x x 3)
  +                                          (x 7 x x x x 6 x 1)
  +                                          (9 x 4 x 1 7 x x 5)
  +                                          (1 3 x x x x x 2 9)
  +                                          (8 x x 9 2 x 1 x 4)
  +                                          (4 x 6 x x x x 1 x)
  +                                          (3 x x 8 7 x x x x)
  +                                          (7 x x x x 4 3 x x)))
  +
  +
  +
  +
  +
  +
  +(dolist (sudoku (list
  +                 *royco-minut-soup*
  +                 *20-minutes/1499/facile*
  +                 *metrofrance/694/moyen*
  +                 ))
     (multiple-value-bind (solutions tries) (sudoku-solver sudoku)
       (terpri)
       (sudoku-print sudoku)
  
positive.code:     (map nil 'sudoku-print solutions)))
  
  
  (let* ((sudoku #2A((2 x 4 1 5 x 8 7 x)
                     (x x x 3 x x x 9 1)
                     (x 7 x 8 6 x x x 4)
                     (x x 3 x 2 1 x 8 x)
                     (x x 1 x 8 x 3 x x)
                     (x 8 x 4 3 x 9 x x)
                     (9 x x x 1 3 x 6 x)
                     (3 2 x x x 4 x x x)
                     (x 1 7 x 9 8 4 x 3))))
    (multiple-value-bind (solutions tries) (sudoku-solver sudoku)
      (terpri)
      (sudoku-print sudoku)
      (format t "  has ~D solution~:*~P,~%  found in ~D tries.~2%" (length solutions) tries)
      (map nil 'sudoku-print solutions)))
  
  
  ;;;; THE END ;;;;
  
negative.code:   (loop
      :with =line = (with-output-to-string (*standard-output*)
                      (loop
                        :repeat (array-dimension sudoku 1)
                        :do (princ "+---")
                        :finally (princ "+") (terpri)))
      :with -line = (with-output-to-string (*standard-output*)
                      (loop
                        :for i :below (array-dimension sudoku 1)
                        :do (princ (if (zerop (mod i 3)) "|   " "+   "))
                        :finally (princ "|") (terpri)))
      :for i :below (array-dimension sudoku 0)
      :do (princ (if (zerop (mod i 3)) =line -line))
      :do (loop
            :for j :below (array-dimension sudoku 1)
            :do (format t (if (zerop (mod j 3)) "|~2@A " " ~2@A ")
                        (let ((slot  (aref sudoku i j)))
                          (if (emptyp slot)
                              "."
  