1 (* Access the current stack
in the heap via a MLton
.share object trace
. *)
2 val rt
: MLton
.Thread
.Runnable
.t option ref
= ref NONE
6 val () = MLton
.share rt
14 val () = rt
:= SOME (MLton
.Thread
.prepare (t
, ()))
20 (* tuple option array
*)
21 val a
= Array
.tabulate (100, fn i
=> SOME (i
mod 2, i
mod 3))
22 val () = Array
.update (a
, 0, NONE
)
26 val size
= MLton
.size a
28 Array
.foldr (fn (NONE
,sum
) => sum
29 |
(SOME (a
, b
),sum
) => a
+ b
+ sum
)
35 val (size1
,sum1
) = touch ()
36 val () = switcheroo ()
37 val (size2
,sum2
) = touch ()
38 val _
= print (concat
["size1 >= size2 = ", Bool.toString (size1
>= size2
), "\n"])
39 val _
= print (concat
["sum1 = sum2 = ", Bool.toString (sum1
>= sum2
), "\n"])