src/org/kocakosm/pitaya/collection/Iterators.java
public static <E> Iterator<E> cycle(Iterator<? extends E> iterator)
	{
		return new LazyCyclicIterator<E>(iterator);
	}
public static <E> Iterator<E> cycle(Iterator<? extends E> iterator)
	{
		return new LazyCyclicIterator<E>(iterator);
	}
Returns an {@code Iterator} that cycles indefinitely over the content
of the given source {@code Iterator}. The source {@code Iterator} is
not polled until necessary. The returned {@code Iterator} supports
{@link Iterator#remove()}.

@param <E> the type of the returned {@code Iterator}'s elements.
@param iterator the source {@code Iterator}.

@return the cyclic {@code Iterator}.

@throws NullPointerException if {@code iterator} is {@code null}.