anchor.diff:    ;; function would be called within the cleanup forms of an
     ;; unwind-protect form within DO-TEST
     (:method ((test test))
  -    (values nil)))
  +    (cond
  +      ((slot-boundp test 'cleanup-function)
  +       (values (test-cleanup-function test) t))
  +      (values nil nil))))
   
   (defgeneric do-test-setup (params test)
     (:method (params (test test))
  
positive.code:   ;; function would be called before the test's primary method is
    ;; evaluated within DO-TEST
    (:method ((test test))
      (values nil)))
  
  (defgeneric test-cleanup-function (test)
    ;; trivial test cleanup protocol
    ;;
    ;; (values (or null function))
    ;;
    ;; if a function, must accept two arguments:
    ;;  1) list of parameters provided to the test
  
negative.code:     ;; FIXME: Alternately, ensure that DEFTEST
      ;; defines a primary method onto DO-TEST-CLEANUP
      ;; when a :cleanup form is provided
      (multiple-value-bind (fn cleanup-p)
          (test-cleanup-function test)
        (when cleanup-p
          (funcall fn params test)))))
  
  
  