Which of these is better and why? button .b rename .b .b:cmd proc .b { args } "eval [list WidgetHandler .b] \$args" or button .b rename .b .b:cmd interp alias {} .b {} WidgetHandler .b [MS] prefers the second, for both clarity and performance reasons (no string parsing at run time).