Backport from sid to buster
[hcoop/debian/mlton.git] / regression / ref-flatten.2.sml
1 datatype t =
2 A of Word16.word ref * Word16.word ref * int list
3 | B
4
5 val a = Array.tabulate (100, fn i =>
6 let
7 val l = [100 + i, 2, 3]
8 in
9 case i mod 2 of
10 0 => A (ref 0w13, ref 0w123, l)
11 | 1 => B
12 end)
13
14 val _ =
15 Array.app
16 (fn B => ()
17 | A (r, r', l) => (r := !r + Word16.fromLarge (LargeWord.fromInt (hd l))
18 ; r' := !r' + !r))
19 a
20
21 val A (w, w', _) = Array.sub (a, 0)
22
23 val _ = print (concat [Word16.toString (!w), " ",
24 Word16.toString (!w'), "\n"])
25
26
27