(&mut self, bound: u32)
| 1356 | ExprData::Lam(_, _, _, b, _) => b.clone(), |
| 1357 | _ => unreachable!(), |
| 1358 | }; |
| 1359 | let opened_inner = |
| 1360 | instantiate_rev(&mut env, &inner_body, std::slice::from_ref(&fv_inner)); |
| 1361 | // opened_inner is now: App(fv_inner, fv_outer) |
| 1362 | let expected_open = AE::app(fv_inner.clone(), fv_outer.clone()); |
| 1363 | assert_eq!(opened_inner, expected_open); |
| 1364 | |
| 1365 | // Close: abstract back over [fv_outer, fv_inner] — outer first. |
| 1366 | let closed = |