anchor.diff:                (not (consp object)))
            (numberp object)
            (stringp object)
  +         (bit-vector-p object)))
  +    (equalp
  +     ;; Don't allow arbitray pinned heap objects. EQUALP gets really hairy.
  +     (or (immediatep object)
  +         (numberp object)
  +         (symbolp object)
  +         (stringp object)
            (bit-vector-p object)))))
   
   (defun hash-table-size (hash-table)
  
positive.code:                                                       :initial-element *hash-table-unbound-value*)
            (hash-table-count hash-table) 0
            (hash-table-used hash-table) 0
            (hash-table-gc-invariant hash-table) t
            (hash-table-storage-epoch hash-table) *gc-epoch*)
      (dotimes (i old-size hash-table)
        (let ((key (svref old-storage (* i 2)))
  
negative.code:   (with-hash-table-lock (hash-table)
      (when (and (hash-table-gc-invariant hash-table)
                 (not (object-hash-gc-invariant-under-test key (hash-table-test hash-table))))
        (when (eql (hash-table-gc-invariant hash-table) :mandatory)
          (error "Hash-table key ~S is not gc-invariant under hash-table test ~S"
                 key (hash-table-test hash-table)))
        ;; Hash table is no longer invariant.
        (setf (hash-table-gc-invariant hash-table) nil))
      (multiple-value-bind (slot free-slot)
  