How would the future get the I/O result then?
> And likewise if you just keep calling the transition function with empty input you'll also busy-loop.
This makes no sense, why would I ever want to do that?
> but if you've got your own external notion of that
That's a very big if. I said "easily" and this is not easy at all.
Moreover it ignores the context: the SansIO/async/await code is generally a library written by a user, while the code that wants to use it is written by someone else entirely. Good luck sharing this external notion between the two!
---
I agree that it would be ideal to have a way to automatically generate the state machine from straightforward looking code, and async/await kinda does this, but this usecase requires more flexibility than what async/await provides.