public static @NotNull MergingCharSequence replaceSubSequence(@NotNull CharSequence charSeq, int start, int end, @NotNull CharSequence replacement) {
    return new MergingCharSequence(
          new MergingCharSequence(new CharSequenceSubSequence(charSeq, 0, start), replacement),
          new CharSequenceSubSequence(charSeq, end, charSeq.length()));
  }
public static @NotNull MergingCharSequence replaceSubSequence(@NotNull CharSequence charSeq, int start, int end, @NotNull CharSequence replacement)