Essay Argues Function Coloring Isn't the Same as Ordinary Parameters
A programming-theory essay pushes back on the claim that any threaded function argument, such as Go's context.Context, qualifies as a 'function color' like async/await. The author argues that if every parameter counted as a color, the concept wouldn't have needed inventing decades after functions themselves existed, and proposes analyzing coloring instead as a question of how a change to one function propagates through the call graph to its callers.
GoKawiil's interpretation of the reporting above, not reported fact.
The function-color debate shapes how language designers think about async/await, effects systems, and API ergonomics, so getting the definition right affects future language design choices. Conflating ordinary parameter-passing with true coloring could muddy arguments used to justify or criticize language features like async syntax.
- The essay rebuts the idea that any threaded argument, like Go's context.Context, is equivalent to function coloring.
- It proposes evaluating 'color' by how a function attribute change forces propagated changes up the call stack.
- The argument is aimed at clarifying long-running online debates about async/await as a special kind of function signature constraint.
The Go Programming Language (Donovan & Kernighan) — The article digs into Go's context.Context and how arguments thread through call graphs — exactly the kind of design detail this book explains from the ground up. Donovan and Kernighan's classic is a great desk reference for reasoning about Go's concurrency and API conventions.
See The Go Programming Language (Donovan & Kernighan) on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.Source: jerf.org, 2026-09-08
Published there as: “Function Arguments Are Not Function Colors”
Read the original report → The summary and analysis above are GoKawiil's own, written from reporting by the source above. Facts and quotes belong to the original publisher.