anchor.diff:    (:export "*DEBUG-ON-ERROR*" "WITH-DEBUGGER-ON-ERROR"
              "*DEBUG-ON-FAILURE*" "WITH-DEBUGGER-ON-FAILURE"
              "DEFINE-TEST" "CHECK" "ASSERT-TRUE" "ASSERT-FALSE" "EXPECT-CONDITION"
  +           "MESSAGE"
              "*VERBOSE-TALLY*"  "*VERBOSE-PROGRESS*"
              "*TEST-OUTPUT*"
              "TESTING"
  
positive.code: 
  
  (defmacro define-test (name parameters &body body)
    "Like DEFUN, but wraps the body in test reporting boilerplate."
    (let ((mandatory (loop
                       :for param :in parameters
                       :until (member param lambda-list-keywords)
  
negative.code: 
  
  (defmacro testing (&body body)
    "Evaluates the body while tallying test successes and failures.
  
  The functions PROGRESS-SUCCESS, PROGRESS-FAILURE and
  PROGRESS-FAILURE-MESSAGE (eg. thru the macros ASSERT-TRUE,
  ASSERT-FALSE, EXPECT-CONDITION and TEST), should only be called in the
  dynamic context established by this TESTING macro.
  
  cf. DEFINE-TEST.
  "
    `(multiple-value-bind (successes failures)
         (let ((*success-count* 0)
               (*failure-count* 0)
  