@Override
	public boolean hasNext() {
		if (inner != null && inner.hasNext() || preppedInner != null && preppedInner.hasNext()) {
			return true;
		}
		preppedInner = prepNextIterator();
		return preppedInner != null;
	}
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