# expected: 100 999
proc with-temp-var {varname tempval body} {
    upvar 1 $varname v
    set saved $v
    set v $tempval
    uplevel 1 $body
    set v $saved
}

set x 100
with-temp-var x 999 {
    set captured $x
}
list $x $captured
