anchor.diff:  
     @override
     Parser seq(Parser other) {
  -    var parsers = new List.from(_parsers);
  -    parsers.add(other);
  -    return new _SequenceParser(parsers);
  -  }
  -
  -  @override
  -  Parser copy() => new _SequenceParser(new List.from(_parsers));
  -
  -}
  +    return new _SequenceParser(new List()..addAll(_parsers)..add(other));
  +  }
  +
  +  @override
  +  Parser copy() => new _SequenceParser(_parsers);
  +
  +}
  
positive.code:  */
  class _ChoiceParser extends ListParser {
  
    _ChoiceParser(parsers) : super(parsers);
  
    @override
    Result parseOn(Context context) {
      var result;
      for (var parser in _parsers) {
        result = parser.parseOn(context);
        if (result.isSuccess) {
          return result;
        }
  
negative.code: 
    @override
    Parser or(Parser other) {
      return new _ChoiceParser(new List()..addAll(_parsers)..add(other));
    }
  
    @override
    Parser copy() => new _ChoiceParser(_parsers);
  
  }
  
  