anchor.diff:            }
           }
         }
  -      i = _HashBase._nextProbe(i, sizeMask);
  +      i = _HashBase._nextProbe(i, probeDistance, sizeMask);
  +      probeDistance += 1;
         pair = _index[i];
       }
       return null;
  
positive.code:     return (maskedHash == 0) ? (size >> 1) : maskedHash * (size >> 1);
    }
  
    // Linear probing.
    static int _firstProbe(int fullHash, int sizeMask) {
      final int i = fullHash & sizeMask;
      // Light, fast shuffle to mitigate bad hashCode (e.g., sequential).
      return ((i << 1) + i) & sizeMask;
    }
  
    static int _nextProbe(int i, int sizeMask) => (i + 1) & sizeMask;
  
    // A self-loop is used to mark a deleted key or value.
    static bool _isDeleted(List<Object?> data, Object? keyOrValue) =>
  
negative.code:     final int hashPattern = _HashBase._hashPattern(fullHash, _hashMask, size);
      int i = _HashBase._firstProbe(fullHash, sizeMask);
      int pair = _index[i];
      int probeDistance = 1;
      while (pair != _HashBase._UNUSED_PAIR) {
        if (pair != _HashBase._DELETED_PAIR) {
          final int entry = hashPattern ^ pair;
  