 
 @usableFromInline
 internal protocol _HashTableDelegate {
-  func hashValue(at index: _HashTable.Index) -> Int
-  func moveEntry(from source: _HashTable.Index, to target: _HashTable.Index)
+  func hashValue(at bucket: _HashTable.Bucket) -> Int
+  func moveEntry(from source: _HashTable.Bucket, to target: _HashTable.Bucket)
 }
 
 @usableFromInline

  /// Insert a new entry for an element at `index`.
  @inlinable
  @inline(__always)
  internal func insert(_ index: Index) {
    _sanityCheck(!isOccupied(index))
    words[index.word].uncheckedInsert(index.bit)
  }

  @inlinable

        delegate.moveEntry(from: candidate, to: hole)
        hole = candidate
      }
      candidate = self.bucket(wrappedAfter: candidate)
    }

    words[hole.word].uncheckedRemove(hole.bit)
