anchor.diff:      (setf (gethash package *test-db*) (make-hash-table)))
      (t (warn "No tests defined for package: ~S" package))))
   
  +;;; Global tags database
  +
  +(defparameter *tag-db* (make-hash-table :test #'eq)
  +  "The tag database is simply a hash table.")
  +
  +(defun package-tags (package &optional create)
  +  "Return the tags DB for the package."
  +  (cond
  +   ((gethash (find-package package) *tag-db*))
  +   (create
  +    (setf (gethash package *tag-db*) (make-hash-table)))
  +   (t (warn "No tags defined for package: ~S" package))))
  +
   (defclass unit-test ()
     ((doc
       :type string
  
positive.code:           (loop for name in names
                  always (remhash name table)
                  collect name into removed
                  finally (return removed))))))
  
  ;;; Assert macros
  
negative.code:         ;; Unit test
          (gethash ',name (package-table *package* t))
          (make-instance 'unit-test :doc ,doc :code ',code))
         ;; Tags
         (loop for tag in ',tag do
               (pushnew
                ',name (gethash tag (package-tags *package* t))))
         ;; Return the name of the test
         ',name)))
  
  