proc ?append {v_name val} { upvar $v_name v if {![info exists v]} { return -code error "expected $v_name to exist!" } append v $val } ;# [GPS]