I also note that a global constant is a rather different creature from a global variable. Global variables introduce global state such that in every function call, you might have this sneaking suspicion that the global state might be changed when you didn't expect it. Global constants don't add to global state, so they don't make it any more difficult to reason about your program than a local constant (other than maybe when you're trying to manually look up the constant's value).