docs: public static <T> Iterable<T> takeWhile(final Iterable<? extends T> iterable, final Function1<? super T, Boolean> predicate) {
  		if (iterable == null)
  			throw new NullPointerException("iterable");
  		if (predicate == null)
  			throw new NullPointerException("predicate");
  		return new Iterable<T>() {
  			@Override
  			public Iterator<T> iterator() {
  				return IteratorExtensions.takeWhile(iterable.iterator(), predicate);
  			}
  		};
  	}