code: @SuppressWarnings({"unchecked", "rawtypes"})
    @Private static <T> Parser<T>[] toArray(Iterable<? extends Parser<? extends T>> parsers) {
      if (parsers instanceof Collection<?>) {
        return toArray((Collection) parsers);
      }
      return toArrayWithIteration(parsers);
    }
docs: We always convert {@link Iterable} to an array to avoid the cost of creating
  a new {@Link java.util.Iterator} object each time the parser runs.