anchor.diff:    @override
     String toString() => parent == null ? 'root' : '$parent::$name';
   }
  -
  -abstract class ReferenceNodeAccessor {
  -  /// Return the node that corresponds to this [Reference], read it if not yet.
  -  AstNode get node;
  -
  -  /// Fill [Reference.nodeAccessor] for children.
  -  ///
  -  /// TODO(scheglov) only class reader has a meaningful implementation.
  -  void readIndex();
  -}
  
positive.code:     return map[name] ??= Reference._(this, name);
    }
  
    /// If the reference has element, and it is for the [node], return `true`.
    ///
    /// The element might be not `null`, but the node is different in case of
    /// duplicate declarations.
    bool hasElementFor(AstNode node) {
      if (element != null && this.node == node) {
        return true;
      } else {
        if (this.node == null) {
          this.node = node;
        }
        return false;
      }
    }
  
    void removeChild(String name) {
      _children!.remove(name);
    }
  
negative.code: 
    /// The simple name of the reference in its [parent].
    final String name;
  
    /// The corresponding [Element], or `null` if a named container.
    Element? element;
  