anchor.diff:        return SequenceParser([inner, _buildChoice(_postfix).star()])
             .map((tuple) {
           return tuple.last.fold(tuple.first, (value, result) {
  -          return result.action(value, result.operator);
  +          final expressionResult = result as ExpressionResult;
  +          return expressionResult.action(value, expressionResult.operator);
           });
         });
       }
  
positive.code:       return inner.separatedBy(_buildChoice(_left)).map((sequence) {
          var result = sequence.first;
          for (var i = 1; i < sequence.length; i += 2) {
            result =
                sequence[i].action(result, sequence[i].operator, sequence[i + 1]);
          }
          return result;
        });
  
negative.code: 
    /// Adds a prefix operator [parser]. Evaluates the optional [action] with the
    /// parsed `operator` and `value`.
    void prefix<T>(Parser<T> parser, [Object action(T operator, Object value)]) {
      action ??= (operator, value) => [operator, value];
      _prefix.add(parser.map((operator) => ExpressionResult(operator, action)));
    }
  