type Holder { value: ref, } fn replace(holder: mutref, next: ref) -> Void { holder.value = next } pub fn main() -> Void { var old: i32 = 1 let next: i32 = 2 var other: i32 = 3 var holder: Holder = Holder { value: &old } let selected: mutref = &mut holder if true { var holder: Holder = Holder { value: &other } replace(selected, &next) } old = 4 }