1 val big
: IntInf
.int = 0x80000000
3 fun try (barg
: IntInf
.int): unit
=
4 let val small
= SOME (IntInf
.toInt barg
)
5 handle Overflow
=> NONE
6 val bstr
= IntInf
.toString barg
7 fun fail msg
= print ("Fail " ^ msg ^
": " ^ bstr ^
"\n")
8 val isSmall
= ~ big
<= barg
andalso barg
< big
13 | SOME sarg
=> if isSmall
14 then let val sstr
= Int.toString sarg
16 andalso barg
= IntInf
.fromInt sarg
23 fun spin (low
: IntInf
.int, limit
: IntInf
.int): unit
=
24 let fun loop (arg
: IntInf
.int): unit
=
35 val _
= spin (0, 1000)
36 val _
= spin (big
- 1000, big
+ 1000)
38 val _
= print
"All ok\n"