@Override
			public Iterator<T> iterator() {
				return NestedIterator.start(spaces.iterator(), func.andThen(Iterable::iterator));
			}
Compose a collection, lazily, from collections returned by delegates

@param spaces the delegates
@param func a collection getter for each delegate
@return the lazy catenated collection
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/space/DBTraceDelegatingManager.java