Antoine Pitrou wrote:
Is it an enhancement or really an alternate proposal?
I would say it's complementary. There are still use cases for 'yield from', when you're dealing with generators that are designed to produce values.
Given that both are useful, defining cofunctions in terms of yield-from allows them to share most of the underlying machinery. It also makes it clear how ordinary functions, generators and cofunctions all interact with each other.
From an outsider's view (mine :-)), I think this alternative makes more sense than trying to stretch the generator protocol far beyond what it was designed for at the start. It would also clearly separate the two use cases of generative iteration and coroutines.
Well, that's one way of looking at it. Another is that generators and coroutines are such closely related concepts that it would seem odd not to be able to define one in terms of the other, or both in terms of some unifying construct.