The discussion of [If we had no if] got me thinking - what core commands can be written in terms of other core commands, and which are just syntactic sugar or optimizations? Maybe if we could hook into [eval] to redo tcl's read-eval-print loop then things like [proc] become a simple lookup into a hashtable, a few [set]s and another eval.. Maybe something like proc eval {command args} { if {[info procs $command] == $command} { foreach [info args $command] $args break eval [info body $command] } elseif {[info commands $command] == $command} { $command $args } } A little rough around the edges, but I never claimed to have fully thought it through ... ---- Are there not already [core] [tcl] commands that are defined as tcl procs? ---- [category internals]