1    private@
2    
3    do
4        let f (a : mut ref [u32; 3]) =
5            a[1] = 4
6            let ptr = a.as_mut_ptr
7            ptr[2] = 6
8    
9        let mut array = [1, 2, 3]
10       f array@mut_ref
11       assert array[1] == 4 && array[2] == 6
12   
13   type A = struct
14       u : bool
15       v : u32
16   
17   do
18       let a1 = A u = true
19                  v = 10
20   
21       let a2 = A u = true
22                  v = 15
23   
24       let mut array = [a1, a2]
25   
26       array[1].v = 8
27       assert array[1].v == 8
28   
29       let ref = array[mut_ref 1]
30       ref.v = 12
31       assert array[1].v == 12
32   
33       let ptr = array[1]@ptr
34       array[1].v = 17
35       assert ptr@to_ref.v == 17
36