code: public static <T> XMLReader<List<T>> elems(final XMLReader<? extends T> reader) {
  		return new ListReader<T>(reader);
  	}
docs: Return a {@code XMLReader} which collects the elements, read by the given
  child {@code reader}, and returns it as list of these elements.
  <p>
  <b>XML</b>
  <pre> {@code
  <properties length="3">
  <property>-1878762439</property>
  <property>-957346595</property>
  <property>-88668137</property>
  </properties>
  }</pre>
  
  <b>Reader definition</b>
  <pre>{@code
  XMLReader<List<Integer>> reader =
  elem(
  v -> (List<Integer>)v[0],
  "properties",
  elems(elem("property", text().map(Integer::parseInt)))
  );
  }</pre>
  
  @param reader the child element reader
  @param <T> the element type
  @return a list reader