function next() {
		var hash;
		var v;
		if ( FLG ) {
			return {
				'done': true
			};
		}
		// Check if this is the first time `next` has been called...
		if ( iterator === void 0 ) {
			hash = intersection( iterators );
			if ( hash.length === 0 ) {
				FLG = true;
				return {
					'done': true
				};
			}
			iterator = hash.iterator();
		}
		v = iterator.next();
		if ( v.done ) {
			FLG = true;
			return v;
		}
		return {
			'value': v.value[ 0 ],
			'done': false
		};
	}
Returns an iterator protocol-compliant object containing the next iterated value.

## Notes

-   The first time `next` is called, we must consume all source values in order to find the intersection (i.e., we "lazily" find the intersection, thus resulting in an upfront cost which is amortized over subsequent `next` calls).

@private
@returns {Object} iterator protocol-compliant object