[TV] Can they be automatically determined, I mean for existing commands, or derived using some standard tcl functions? I'm sure the subject falls under the category of [Introspection], where the bottom line seems to be that the answer is no. I'm not looking for traversing widget hierarchies or complicated analysis, just a list of functions, and especially the command syntax in some form, preferably as powerfull as a formal syntax definition, and readable. One can extract the functions arguments from a user defined function, and their defaults, and of course the body, but tcl functions seem to be be able to be tested for syntax and expansion from shortcuts, but not for simply which arguments they allow. ---- '''[DGP]''' Just a few notes on terminology. You refer to ''functions'' and ''user defined functions''. In the Tcl world, we normally speak of [command]s and [proc]s instead. Sometimes we even use the whole word and speak of ''procedure''s, but when we speak of ''functions'', we usually mean something like '''sin()''' that belongs inside an [expr]. There are some introspection commands that operation only on [proc]s -- [info args] and [info default] -- that give you information about that [proc]s syntax expectations. There is no corresponding introspection for a general Tcl command. It is conventional, however, for error messages to include such a summary. For a simple example: % set wrong # args: should be "set varName ?newValue?" And of course you can always consult the DESCRIPTION section of the commands documentation.