anchor.diff:      }
     }
   
  -  /// Override this method in subclasses with child nodes to call
  -  /// redepthChild(child) for each child. Do not call directly.
  +  /// Adjust the [depth] of this node's children, if any.
  +  ///
  +  /// Override this method in subclasses with child nodes to call [redepthChild]
  +  /// for each child. Do not call this method directly.
     void redepthChildren() { }
   
  +  /// The owner for this node (null if unattached).
  +  ///
  +  /// The entire subtree that this node belongs to will have the same owner.
  +  Object get owner => _owner;
     Object _owner;
  -  /// The owner for this node (null if unattached).
  -  Object get owner => _owner;
   
     /// Whether this node is in a tree whose root is attached to something.
     bool get attached => _owner != null;
   
     /// Mark this node as attached to the given owner.
     ///
  -  /// Typically called only from the parent's attach(), and to mark the root of
  -  /// a tree attached.
  +  /// Typically called only from the [parent]'s [attach] method, and by the
  +  /// [owner] to mark the root of a tree as attached.
     ///
  -  /// Subclasses with children should attach all their children to the same
  +  /// Subclasses with children should [attach] all their children to the same
     /// [owner] whenever this method is called.
     @mustCallSuper
     void attach(@checked Object owner) {
  
positive.code:     redepthChild(child);
    }
  
    /// Subclasses should call this function when they lose a child.
    @protected
    @mustCallSuper
  
negative.code: 
    /// Mark this node as detached.
    ///
    /// Typically called only from the [parent]'s [detach], and by the [owner] to
    /// mark the root of a tree as detached.
    ///
    /// Subclasses with children should [detach] all their children whenever this
    /// method is called.
    @mustCallSuper
    void detach() {
  