docs: private boolean removeAt(final int index) {
  		--size;
  		// Clearing the key is not strictly necessary (for GC like in a regular collection),
  		// but recommended for security. The memory location is still fresh in the cache anyway.
  		keys[index] = 0;
  		values[index] = null;
  
  		// In the interval from index to the next available entry, the arrays may have entries
  		// that are displaced from their base position due to prior conflicts. Iterate these
  		// entries and move them back if possible, optimizing future lookups.
  		// Knuth Section 6.4 Algorithm R, also used by the JDK's IdentityHashMap.
  
  		int nextFree = index;
  		int i = probeNext(index);
  		for (V value = values[i]; value != null; value = values[i = probeNext(i)]) {
  			long key = keys[i];
  			int bucket = hashIndex(key);
  			if (i < bucket && (bucket <= nextFree || nextFree <= i) || bucket <= nextFree && nextFree <= i) {
  				// Move the displaced entry "back" to the first available position.
  				keys[nextFree] = key;
  				values[nextFree] = value;
  				// Put the first entry after the displaced entry
  				keys[i] = 0;
  				values[i] = null;
  				nextFree = i;
  			}
  		}
  		return nextFree != index;
  	}