I wrote a library that does single threaded cooperative scheduling and async I/O and from the ground up, it was designed to implement this interface.

https://github.com/lalinsky/zio

That's quite an unfortunate name given there's already a famous async framework named ZIO for Scala

https://github.com/zio/zio

I knew about this, but I think the language scope is so different that it's OK.