@Override
	public ParseResult<T, A> parse(LList<T> tokens) {
		for(Parser<T,A> p: this.parsers) {
			ParseResult<T,A> r = p.parse(tokens);
			if(r.isSuccess()) {
				return r;
			}
		}
		return Fail.<T,A>of().parse(tokens);
	}