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;
	}
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 ; }
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.