anchor.diff:        : super(inner);
   
     @override
  -  EditPlan apply(AstNode node, EditPlan Function(AstNode) gather) {
  -    var innerPlan = _inner.apply(node, gather);
  +  EditPlan apply(AstNode node, FixAggregator aggregator) {
  +    var innerPlan = _inner.apply(node, aggregator);
       return EditPlan.surround(innerPlan,
           suffix: [InsertText(' as $type')],
           outerPrecedence: Precedence.relational,
  
positive.code:   const NullCheck([NodeChange inner = const NoChange()]) : super(inner);
  
    @override
    EditPlan apply(AstNode node, EditPlan Function(AstNode) gather) {
      var innerPlan = _inner.apply(node, gather);
      return EditPlan.surround(innerPlan,
          suffix: [const InsertText('!')],
          outerPrecedence: Precedence.postfix,
  
negative.code: 
    FixAggregator._(this._changes);
  
    /// Gathers all the changes to nodes descended from [node] into a single
    /// [EditPlan].
    EditPlan innerPlanForNode(AstNode node) {
      var previousPlans = _plans;
      try {
        _plans = [];
  