Hello everybody and happy new year
I was thinking to RFC the following union:
typedef IterableFactory = array | IteratorAggregate;
As you know, passing Iterators around is a bad idea because one can 
accidentally end up using them concurrently. For example if one entity is 
traversing the iterator, and a second entity calls rewind() and fully 
traverses the very same iterator, the first entity would try to continue 
the traversal from a finished iterator. So in order to avoid this kind of 
confusing designs we generally keep iterators as confined as possible - 
instead, we pass around "iterator factories" such as IteratorAggregate. 
However, that doesn't include arrays, which can be safely iterated 
concurrently as well. Hence my proposal.
Essentially this is like Iterable but excludes Iterator.
Thoughts? TY