docs: protected void visitChildrenAllowingConcurrentModification(ParentNode<? extends N> node) {
      // use toArray to create a copy to avoid concurrent modification exception
      for (Node child : node.getChildren().toArray(EMPTY_NODE_ARRAY)) {
        // safe since the parent only contains subtypes of N.
        @SuppressWarnings("unchecked")
        N typedChild = (N) child;
        visit(typedChild);
      }
    }