anchor.diff:            .parse('4-------1')
             .value, closeTo(0, epsilon));
       });
  -    test('prefix negate', () {
  +    test('postfix sub parse', () {
  +      expect(parser
  +          .parse('0--')
  +          .value, ['0', '--']);
  +      expect(parser
  +          .parse('0----')
  +          .value, [['0', '--'], '--']);
  +      expect(parser
  +          .parse('0------')
  +          .value, [[['0', '--'], '--'], '--']);
  +      expect(parser
  +          .parse('0---1')
  +          .value, [['0', '--'], '-', '1']);
  +      expect(parser
  +          .parse('0-----1')
  +          .value, [[['0', '--'], '--'], '-', '1']);
  +      expect(parser
  +          .parse('0-------1')
  +          .value, [[[['0', '--'], '--'], '--'], '-', '1']);
  +    });
  +    test('negate', () {
         expect(evaluator
             .parse('1')
             .value, closeTo(1, epsilon));
  
positive.code:     test('add parse', () {
        expect(parser
            .parse('1 + 2 + 3')
            .value, [[1, '+', 2], '+', 3]);
      });
      test('sub', () {
        expect(evaluator
  
negative.code:       expect(evaluator
            .parse('---1')
            .value, closeTo(-1, epsilon));
      });
      test('negate parse', () {
        expect(parser
            .parse('1')
            .value, '1');
        expect(parser
            .parse('-1')
            .value, ['-', '1']);
        expect(parser
            .parse('--1')
            .value, ['-', ['-', '1']]);
        expect(parser
            .parse('---1')
            .value, ['-', ['-', ['-', '1']]]);
      });
    });
    group('tutorial', () {
  