anchor.diff:    /// Override to handle pressing on a Leaf node.
     void leaf() {}
   
  -  void addChild(T child, {int index}) {
  +  void addChild(T child, {int? index}) {
       index ??= children.length;
       assert(index <= children.length);
       children.insert(index, child);
  -    child.parent = this;
  +    child.parent = this as T?;
       child.index = index;
       for (int i = index + 1; i < children.length; ++i) {
         children[i].index++;
  
positive.code: 
    /// Collapses this node and all of its children (cascading).
    void collapseCascading() {
      breadthFirstTraversal<T>(this, action: (T node) {
        node.collapse();
      });
    }
  
negative.code: 
    T get root {
      if (_root != null) {
        return _root!;
      }
      if (parent == null) return _root = this as T;
      return _root = parent!.root;
    }
  
    T? _root;
  
    /// The level (0-based) of this tree node in the tree.
    int get level {
      if (_level != null) {
        return _level!;
      }
      if (parent == null) return _level = 0;
      return _level = 1 + parent!.level;
    }
  
    int? _level;
  
    /// Whether the tree table node is expandable.
    bool get isExpandable => children.isNotEmpty;
  