Preparing the iteration ABI for move-only types

I don’t think so. If makeIterator becomes a requirement on Collection, it still would need to be made consuming in order to be implementable by move-only collections. The makeIterator interface would only work as a shorthand for defining copyable collections, since it’s inherently a consuming interface, whereas indexing and subscripting are borrowing.