anchor.diff:  (defstruct captcha
     (id        0   :type integer)
     (answer    ""  :type string)
  -  (time      0   :type integer)
  -  (processed nil :type boolean))
  +  (time      0   :type integer))
   (defvar *captcha-pool* nil
     "Pool of current (not processed and not expired yet)
      tests")
  
positive.code:   "Generate CAPTCHA for user and put it in pool"
    (if *captcha-providers*
        (bordeaux-threads:with-lock-held (*captcha-lock*)
          (let* ((last-captcha (car *captcha-pool*))
                 (id (if last-captcha
                         (1+ (captcha-id last-captcha))
                         0))
                 (gen/check-num (random (length *captcha-providers*))))
            (multiple-value-bind (question answer)
                (funcall (nth gen/check-num *captcha-providers*))
              (push (make-captcha :id id
  
negative.code:           (let* ((answer (subseq answer-str (1+ rest)))
                   (captcha (find id *captcha-pool*
                                  :key #'captcha-id)))
              (when captcha
                (setq *captcha-pool* (delete captcha *captcha-pool*))
                (string= (captcha-answer captcha) answer)))))))
  
  (defun multiple-reals ()
    (let ((num1 (random 10))
  