code: public static <T> void forEach(Iterable<T> iterable, Procedure2<? super T, ? super Integer> procedure) {
  		IteratorExtensions.forEach(iterable.iterator(), procedure);
  	}
docs: Applies {@code procedure} for each element of the given iterable.
  The procedure takes the element and a loop counter. If the counter would overflow, {@link Integer#MAX_VALUE}
  is returned for all subsequent elements. The first element is at index zero.
  
  @param iterable
  the iterable. May not be <code>null</code>.
  @param procedure
  the procedure. May not be <code>null</code>.
  @since 2.3