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_Reassign to prevent this.