// `pop_scope` removes the inner scope's locals from consideration.
start ::= <<push_scope>><<fresh_local[A]>> <<inner>> -> <<choose_local[A]>>
inner ::= (<<push_scope>><<fresh_local[A]>> -> <<choose_local[A]>><<pop_scope>>)

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