anchor.diff:  (defparameter *failed-tests* '())
   (defparameter *skipped-test-count* 0)
   
  -(defun test-failure (name expr value expected-value condition expected-condition)
  +(defun test-failure (name expr value expected-value condition expected-condition failure-thunk)
     (assert (not (assoc name *failed-tests*)) nil "There is already a test named ~S." name)
     (assert (not (assoc name *passed-tests*)) nil "There is already a test named ~S." name)
     (push (cons name (list expr value expected-value)) *failed-tests*)
  
positive.code:   (flet ((handle-test-success (value)
  	   (test-success name expr value expected-value))
  	 (handle-test-failure (value condition)
  	   (test-failure name expr value expected-value condition nil)
  	   (when failure-thunk
  	     (funcall failure-thunk))))
      (restart-case 
  	(handler-bind ((error #'maybe-fail-test))
  	  (let ((value (funcall test-thunk)))
  
negative.code:   (flet ((handle-test-success (condition)
  	   (test-success name expr condition expected-condition))
  	 (handle-test-failure (condition)
  	   (test-failure name expr nil nil condition expected-condition failure-thunk)))
      (multiple-value-bind (value condition)
  	(ignore-errors (funcall test-thunk))
        (if (funcall comparator condition expected-condition)
  