3Technically, our semantics as defined allow us to re-define or conditionally define procedures, so one can write a program in which it’s
non-obvious which procedure is being called, but with types, we would probably introduce a rule similar to T_Reassignto prevent
this.