Returns true if the provided index was changed by this operation.
bool indexChanged(key) {
// If key isn't an int, or before the index, then it wasn't changed.
if (key is! int || key < index) return false;
// If this was a shift operation, anything after index is changed.
if (addedCount != removed.length) return true;
// Otherwise, anything in the update range was changed.
return key < index + addedCount;
}