@Override
  public @NotNull ProperTextRange union(@NotNull TextRange textRange) {
    assertProperRange(textRange);
    TextRange range = super.union(textRange);
    return new ProperTextRange(range);
  }
@Override
  public @NotNull ProperTextRange union(@NotNull TextRange textRange)