This is exactly what I wanted to propose today. One thing I'd like to add is that it will require some additional logic to be implemented for for [try] await x in y. For context take a look at my workaround for "opaque AsyncSequence"
for [try] await x in y