type Holder {
    value: ref<i32>,
    count: i32,
}

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

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