New in 2019r2
The Iterable interface allows objects to denote themselves as being able to be used with "For Each" loops and provides a way to create Iterators, which do the actual work.
Iterator interface