docs: public void addChildren(int index, List<? extends N> children) {
      List<N> origChildren = Lists.newArrayList(this.children);
      int origNumChildren = this.children.size();
      // Temporarily remove the original children from index onward (in reverse order).
      for (int i = origNumChildren - 1; i >= index; i--) {
        removeChild(i);
      }
      // Add the new children.
      addChildren(children);
      // Add back the original children that we temporarily removed (in correct order).
      addChildren(origChildren.subList(index, origNumChildren));
    }