Tcl has a variety of types of commands. The following are all types of command which are indistinguishable to their caller (that bit is important): * TclOO objects - * [namespace ensemble]s - * [coroutine]s - * [proc]s * built-ins and [extension]al C commands * [interp]s * [thread]s (not strictly true, but trivially simulated.) The interesting thing about this is that each of these command types can fully simulate the others. [CMcC] Some of them are ensemble commands, we might say. Namespace ensembles, TclOO objects, interps in a sense contain other commands, or simulate their containment. I look forward to the day when a builtin is being simulated by a coroutine, or a builtin is provided by a coroutine. One could possibly stretch the analogy to include the [reflected channel] mechanism, since it is defined over a user-supplied container of commands. ---- !!!!!! %| enter categories here |% !!!!!!