do not forget to recurse into closures
we have to bind TCast arguments as well to deal with `var y = cast x++`
add some timers