anchor.diff:       (let ((epoch *gc-epoch*))
          (multiple-value-bind (offset free-slot)
              (find-hash-table-slot-1 key hash-table)
  -         (when (and (eql epoch *gc-epoch*)
  -                    (eql (hash-table-storage-epoch hash-table) *gc-epoch*))
  +         (when (or (hash-table-gc-invariant hash-table)
  +                   (and (eql epoch *gc-epoch*)
  +                        (eql (hash-table-storage-epoch hash-table) *gc-epoch*)))
              (return (values offset free-slot)))
            (hash-table-rehash hash-table nil)))))
   
  
positive.code:   (storage (error "No storage provided.") :type simple-vector)
    (storage-epoch *gc-epoch*)
    (synchronized t)
    lock)
  
  (declaim (inline %make-hash-table))
  
  (defun hash-table-size (hash-table)
    (ash (%object-header-data (hash-table-storage hash-table)) -1))
  
negative.code: (defun (cas gethash) (old-value new-value key hash-table &optional default)
    (check-type hash-table hash-table)
    (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))))
        ;; Hash table is no longer invariant.
        (setf (hash-table-gc-invariant hash-table) nil))
      (multiple-value-bind (slot free-slot)
          (find-hash-table-slot key hash-table)
        (cond
  