関数の引数は「関数の色」ではない:変更依存グラフの形で定義する
Function Arguments Are Not Function Colors
非同期処理を「関数の色」と捉える議論に対し、著者は関数の引数も色になり得るという主張を批判し、変更の伝播パターンに基づく明確な定義を提案します。通常の引数変更は呼び出し元にのみ影響し、途中の関数でカプセル化できますが、真の「色」はコールスタック全体に強制的に伝播します。Go の context.Context や Haskell の STM モナドを例に、色の本質を解説し、部分的な色付けの概念も紹介します。
色の変更はこのカプセル化を逃れます。スタック内のすべての上位関数はその要件に一致しなければなりません。