> So instead of e.g. \chk_var_or_const:N we have \chk/var_or_const:N. > Again: / _ : all have catcode 11. Perhaps allowing _ as the separator and for use within the final names is not ideal, although looking at your example above / looks too `hard' a break to me, I can read \chk_var_or_const:N as one token but \chk/ looks too split off. Perhaps another idea would be to use _ as now, but not use it within the final name, as in \chk_VarOrConst:N. Don't know. As Frank commented earlier, it also makes a difference if you are looking at it on screen rather than on paper. > If _in your document_ you want to `import' the short names you might > say: I really don't think it helps to think of document level usage for this kind of module. Although it does make sense to look at ways of using different top level command names, I suspect any such top level interface mechanism will need to be substantially different from the way code at the programming levels is organised into modules. \UseShortNames{splat} . . . \mymacro . . . This most reminds me of context. (Any context users on this list?) I haven't really looked in detail what Context does here but have seen Hans (the other one:-) demo it a few times. The Context kernel does not directly define any top level user commands, instead that top level is defined in a final customisation setup. In the case of context the main aim is to have language specific command names. Such an interface could possibly be extended to cater for more general renaming to avoid interface clashes. Perhaps someone with more experience of context might like to say what that system is doing, for comparison. David