I forgot to mention... I think that we should have <component-name> ::= <source-name> # types, functions, variables instaed of just <component-name> ::= <namespace source-name> Otherwise a fully-scoped encoding of a variable using a list of <component-name>s can't end with the variable's name.