And to be fair my Coroutine implementation is very close to Lua's Coroutines (because I wrapped a library of a talented guy who created a compiled version of Lua), but I never used Coroutines in Lua before, neither Java virtual threads.
I took inspirations from everywhere, finally, it resembles Go when we don't look closely. But it does a lot of things drastically differently : * timeouts are supported * "spawning" a function returns a Task-like object, that is a first class citizen. It could be waited (no waitGroup), it has a return value * I privileged Nim's idiomatic over Go's * The whole IO API (which I named GoFile, GoStreams, etc) has nothing in common with Go, it looks like Nim's sync library but with more OOP (this last word will I think trigger Araq^^)