const T: usize = 3 const N: usize = 3 type Holder { value: U, } type Box { value: i32, } fn unwrap(holder: ref>) -> T { return holder.value } fn forwardUnwrap(holder: ref>) -> T { return unwrap(holder) } fn read(box: ref>) -> i32 { return box.value } pub fn main() -> Void { let holder: Holder = Holder { value: 5 } let value: i32 = forwardUnwrap(&holder) let box: Box<4> = Box { value: 9 } let boxed: i32 = read(&box) expect (value == 5 && boxed == 9) }