함수 인자는 함수 색이 아니다
Function Arguments Are Not Function Colors
함수의 색(function color) 논쟁에서 일부는 함수 인자도 색이 될 수 있다고 주장한다. Go의 context.Context가 대표적인 예로, 일단 사용하면 모든 호출 체인에 전달해야 한다는 점에서 색처럼 보인다. 그러나 저자는 이를 '변경 전파 그래프의 형태'로 재정의한다. 일반적인 변경은 호출 스택을 따라 점진적으로 전파되며 중간 함수가 캡슐화할 수 있지만, 색 변경은 스택의 모든 함수에 즉시 전파되어 캡슐화를 불가능하게 만든다. 이 기준으로 보면 Go의 context는 실제로 색이 아니며, JavaScript의 async도 언어 구현에 따라 색일 수도 아닐 수도 있다. Haskell의 STM 모나드는 부분 색(partial color)의 예로, 특정 함수들 사이에서만 색처럼 작동한다. 결론적으로 색은 이진적 개념이 아니라 스펙트럼이며, 언어별로 세부 구현을 살펴봐야 한다.
색 변경은 캡슐화를 벗어난다. 스택 위의 모든 함수는 그 요구사항을 반드시 충족해야 한다.