I think using generators to implement iterators will be a huge benefit. For example this playground shows an example of an iterator that is very simple to implement with a generator, but otherwise somewhat complex and/or unsafe.
The eRFC discusses using wrapper types to convert generators to iterators. (That’s also the approach used in my playground above.) It mentions that wrapper types may be necessary because a generic impl<G: Generator> Iterator for G
could cause coherence errors. But as an alternative to wrapper types, would it be possible for the compiler to automatically generate both Iterator
and Generator
implementations for each generator literal?