code: public static <T> boolean forall(Iterator<T> iterator, Function1<? super T, Boolean> predicate) {
  		if (predicate == null)
  			throw new NullPointerException("predicate");
  		while(iterator.hasNext()) {
  			if (!predicate.apply(iterator.next()))
  				return false;
  		}
  		return true;
  	}
docs: Returns {@code true} if every element in {@code iterator} satisfies the predicate. If {@code iterator} is empty,
  {@code true} is returned. In other words, <code>false</code> is returned if at least one element fails to fulfill
  the predicate.
  
  @param iterator
  the iterator. May not be <code>null</code>.
  @param predicate
  the predicate. May not be <code>null</code>.
  @return <code>true</code> if every element in {@code iterator} satisfies the predicate and also if there is no element.