Earlier quoted context omitted.
There are no function colors in Go in the way being discussed. Every function can be spawned as a go routine, every function can spawn go routines.
Go (and other language with threads) implicitly run inside the "async IO monad." In the function color analogy, what this means is that all functions are red, and the "ordinary" function call corresponds to "await" in languages such as JavaScript or C#. Async/await is one implementation of cooperative concurrency , where the programmer must explicitly annotate the points where a context switch may occur. However, one…
This is my principle point of disagreement with the OP comment in this thread. Your response is either not meant for me, or is meant to agree with me, but I'm really not sure but you write:
> In the function color analogy, what this means is that all functions are red
and
> while Go does not distinguish between async and sync functions
Which was my point. Go does not have the function color problem (around sync/async) because it does not color its functions that way.