// `choose_local` considers locals in all enclosing scopes
start ::= <<push_scope>><<fresh_local[A]>> <<inner>>
inner ::= (<<push_scope>><<fresh_local[A]>> -> <<choose_local[A]>><<pop_scope>>)

// output 0: x0 (x1 -> x0)
// output 1: x0 (x1 -> x1)
