Remix.run Logo
rowanG077 7 hours ago

Where do you think the Io parameter comes from? If you change some function to do something async and now suddenly you require an Io instance. I don't see the difference between having to modify the call tree to be async vs modifying the call tree to pass in an Io token.

messe 7 hours ago | parent [-]

Synchronous Io also uses the Io instance now. The coloring is no longer "is it async?" it's "does it perform Io"?

This allows library authors to write their code in a manner that's agnostic to the Io runtime the user chooses, synchronous, threaded, evented with stackful coroutines, evented with stackless coroutines.

rowanG077 6 hours ago | parent [-]

Rust also allows writing async code that is agnostic to the async runtime used. Subsuming async under Io doesn't change much imo.