anchor.diff:          final parser = repeated | terminal;
           final analyzer = Analyzer(parser);
           final path = analyzer.findPathTo(parser, terminal)!;
  +        expect(path.source, parser);
  +        expect(path.target, terminal);
           expect(path.parsers, [parser, terminal]);
           expect(path.indexes, [1]);
           final paths = analyzer.findAllPathsTo(parser, terminal).toList();
  
positive.code:         final parser = char('a');
          final analyzer = Analyzer(parser);
          final path = analyzer.findPathTo(parser, parser)!;
          expect(path.parsers, [parser]);
          expect(path.indexes, []);
          final paths = analyzer.findAllPathsTo(parser, parser).toList();
  
negative.code:         expect(parser, same(input));
          callback(LinterIssue(rule, parser, 'Described'));
        });
        expect(rule.toString(),
            'LinterRule(type: LinterType.error, title: Fake Rule)');
        final results = linter(input, rules: [rule], callback: called.add);
        expect(results, [
          isA<LinterIssue>()
  