@Override
	public I next() {
		if (inner == null || !inner.hasNext()) {
			if (preppedInner == null) {
				preppedInner = prepNextIterator();
			}
			if (preppedInner == null) { // Still
				return null;
			}
			inner = preppedInner;
			preppedInner = null;
		}
		return inner.next();
	}
TODO Document me

Note the innerFactory may return null to skip an outer element.

TODO: Test innerFactory returning null.

@param <O>
@param <I>
Ghidra/Debug/ProposedUtils/src/main/java/generic/NestedIterator.java