TclOO is not just an OO extension, it's a scriptable OO extension.
It's possible to add facilities and capabilities to the oo::class object, and enhance or modify the kind of objects class creates.
Examples (developed in 8 minutes flat by dkf)
-- Class Methods --
proc ::oo::define::classmethod name { set class [lindex [info level -1] 1] set classmy [info object namespace $class]::my uplevel 1 forward $name $classmy $name }
-- Class Variables --
proc ::oo::Helpers::classvar {name args} { set ns [info object namespace [uplevel 1 {self class}]] foreach v [list $name {*}$args] { uplevel 1 [list namespace upvar $ns $v $v] } }