-- deviation: short circuit for now
--local MAYBE_ITERATOR_SYMBOL = false -- deviation: typeof(Symbol) == 'function' and Symbol.iterator
--local FAUX_ITERATOR_SYMBOL = '@@iterator'


type Iterator<T> = {
	next: () -> {
		value: T,
		key: any,
		done: boolean,
	},
}