{ let a := caller() pop(a) for { } a { pop(a) } { pop(a) } } // ==== // step: rematerialiser // ---- // { // let a := caller() // pop(caller()) // for { } caller() { pop(caller()) } // { pop(caller()) } // }