@Override
  public @NotNull ImmutableText delete(int start, int end) {
    if (start == end) return this;
    if (start > end) {
      throw new IndexOutOfBoundsException();
    }
    return subtext(0, start).concat(subtext(end));
  }
@Override
  public @NotNull ImmutableText delete(int start, int end)