src/org/kocakosm/pitaya/collection/Iterables.java
public static <T> Iterable<T> concat(Iterable<? extends Iterable<? extends T>> iterables)
	{
		return new ConcatIterable<T>(iterables);
	}
public static <T> Iterable<T> concat(Iterable<? extends Iterable<? extends T>> iterables)
	{
		return new ConcatIterable<T>(iterables);
	}
Concatenates the given {@code Iterable}s into a single one. Note that
the returned {@code Iterable} is only a view, that is, any subsequent
update on any of the input {@code Iterable}s will affect the returned
view. The input {@code Iterable}s will not be polled until necessary.
The returned view's {@code Iterator} supports {@link Iterator#remove()}
when the corresponding input {@code Iterator} supports it.

@param <T> the type of the returned {@code Iterable}s' elements.
@param iterables the {@code Iterable}s to concatenate.

@return the concatenated {@code Iterable}.

@throws NullPointerException if {@code iterables} is {@code null} or
if it contains a {@code null} reference.