private boolean process(@Nullable IntervalNode<T> root,
                          int modCountBefore,
                          @NotNull Processor<? super T> processor) {
    if (root == null) return true;

    WalkingState.TreeGuide<IntervalNode<T>> guide = IntervalTreeGuide.getGuide();
    return WalkingState.processAll(root, guide, node -> {
      if (!node.processAliveKeys(processor)) return false;
      if (getModCount() != modCountBefore) throw new ConcurrentModificationException();
      return true;
    });
  }
private boolean process(@Nullable IntervalNode<T> root,
                          int modCountBefore,
                          @NotNull Processor<? super T> processor)