type Holder {
    value: ref<i32>,
}

fn replaceValue(holder: mutref<Holder>, next: ref<i32>) -> Bool {
    holder.value = next
    return true
}

pub fn main() -> Void {
    var old: i32 = 1
    let next: i32 = 2
    var holder: Holder = Holder { value: &old }
    let ok: Bool = false && replaceValue(&mut holder, &next)
    old = 3
}
