/** @see Iterate#foldLeft(double, Iterable, DoubleObjectToDoubleFunction) */
 public static <T> double foldLeft(
     double injectValue, Iterable<T> iterable, DoubleObjectToDoubleFunction<? super T> function) {
   return IteratorIterate.foldLeft(injectValue, iterable.iterator(), function);
 }
 /** @see Iterate#foldLeft(int, Iterable, IntObjectToIntFunction) */
 public static <T> int foldLeft(
     int injectValue, Iterable<T> iterable, IntObjectToIntFunction<? super T> function) {
   return IteratorIterate.foldLeft(injectValue, iterable.iterator(), function);
 }
 /** @see Iterate#foldLeft(long, Iterable, LongObjectToLongFunction) */
 public static <T> long foldLeft(
     long injectValue, Iterable<T> iterable, LongObjectToLongFunction<? super T> function) {
   return IteratorIterate.foldLeft(injectValue, iterable.iterator(), function);
 }
 /** @see Iterate#foldLeft(Object, Iterable, Function2) */
 public static <T, IV> IV foldLeft(
     IV injectValue,
     Iterable<T> iterable,
     Function2<? super IV, ? super T, ? extends IV> function) {
   return IteratorIterate.foldLeft(injectValue, iterable.iterator(), function);
 }