9 -------------------------------------------------------------------------------
11 let assign_int < 'a > (&r v: 'a) (out [r] {r = v}) = any
13 let assign_list < 'a > (&r v: list 'a) {} (out [r] {r = v})
16 -------------------------------------------------------------------------------
18 let rev_append < 'a > (l0 r0: list 'a) {}
19 (out (r: list 'a) { r = reverse l0 ++ r0 })
21 [ loop { reverse l ++ r = reverse l0 ++ r0 }
23 (fun (h: 'a) (t: list 'a) ->
24 [ &r <- Cons h r | &l <- t ] loop)
26 [ &r: list 'a = r0 | &l: list 'a = l0 ]