void beforeRemove(@NotNull T marker, @NotNull IntervalNode<T> node) {
    if (firingRemove) {
      throw new IncorrectOperationException("must not remove range markers from within beforeRemove() listener");
    }
    firingRemove = true;
    try {
      fireBeforeRemoved(marker);
    }
    finally {
      firingRemove = false;
    }
  }
void beforeRemove(@NotNull T marker, @NotNull IntervalNode<T> node)