Comment by woodruffw
> 1) zig's io is not an effect type, you can in principle declare a global io variable and use it everywhere that any library calls for it.
That's an effect, akin to globally intermediated I/O in a managed runtime.
To make it intuitive: if you have a global token for I/O, does your concurrent program need to synchronize on it in order to operate soundly? Do programs that fail to obtain the token behave correctly?
how do you "fail to obtain the token"?