To simplify this paper, some terms are explicitly defined. A ``statement''
refers to an individual line of Tcl code, including all arguments. The
first argument is called the ``command''; all subsequent
whitespace-separated arguments are called ``arguments'' or ``args''. If
a command was not defined by proc, but exists in the interpreter
(eg. it is a registered C callback function), it is called a
``builtin''. Note that the entire Tcl core command set is implemented as
builtins.