Reply to Steven D'Aprano:
But you've said that you want constants to be capable of being rebound to a new value. So your constants are identical to variables.
No, not at all. Actually to be clear, constants are supposed to behave like literals but in implementation they are nothing more than names that are bind to a value.