Here is another suggestion for the argspec: Instead of naming a command \<name>:<argspec>, for every command \<name> that needs an argspec one defines another command named \<name>: which expands to the <argspec> (or argspecs, if the same command name is allowed to have several argspecs). This would be efficient in TeX as the command \<name>: is only used when really needed. The process can also be automated by having a special definitions command, say \define<argspec>:\<name><parameter>{definition} which defines both \<name> and \<name>: at once. The argspec is then more easily available for manipulation. Hans Aberg * Email: Hans Aberg <mailto:[log in to unmask]> * Home Page: <http://www.matematik.su.se/~haberg/> * AMS member listing: <http://www.ams.org/cml/>