when is symbol shadowing permitted/forbidden? It appears that it is only forbidden in multiple levels of statements, but not in multiple levels of declDefs