> I hope my explanations wasn't too confusing and might convince you.
Thank you but we're talking past each other. `goThread` and `goAsync` is exactly the distinction that I seek to avoid entirely. I want a single `spawn` construct. And usually I will not use `spawn` for IO at all but when I write `let line = myfile.readLine()` the implementation is smart enough to schedule something else on this hardware thread as the current task waits for the line to arrive.