Early snap to late snap
After much discussion, it was decided that the first (external) expression for the expression should be evaluated immediately and that the remaining expressions are evaluated when the generator is executed.
Asking to summarize the reasoning about the binding of the first expression, Guido suggested [5]:
sum(x for x in foo()). , foo() , sum(), . ? , sum(), foo(), foo() sum(), , .
OTOH, sum(bar(x) for x in foo()), sum() foo() bugfree, bar() , , bar() , sum() - . ( , next() .)
. .