language that had variables in it, you would have to do things like use strange variable names in your macro definitions and things, to avoid having sort of surprising semantics in the presence of variable shadowing. 