Iterator<E> () { List<Iterable<? extends E>> iterables = Arrays.asList(getIterables()); //noinspection unchecked return new FlattenFun.FlattenIt<E, E>( (Iterator<? extends E>)iterables.iterator(), Functions.<E, Iterable<E>>identity()); }