Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / cases.sml
CommitLineData
7f918cf1
CE
1fun test (f, a, r) =
2 if f a = r
3 then ()
4 else raise Fail "bug"
5
6val rec f =
7 fn 0 => 0
8 | 1 => 1
9 | 2 => 2
10 | i => f (i - 1)
11
12val _ = test (f, 100, 2)
13
14val rec f: word -> int =
15 fn 0w0 => 0
16 | 0w1 => 1
17 | 0w2 => 2
18 | w => f (w - 0w1)
19
20val _ = test (f, 0w100, 2)
21
22val rec f: Word8.word -> int =
23 fn 0w0 => 0
24 | 0w1 => 1
25 | 0w2 => 2
26 | w => f (w - 0w1)
27
28val _ = test (f, 0w100, 2)
29
30val rec f: char -> int =
31 fn #"a" => 0
32 | #"b" => 1
33 | #"c" => 2
34 | _ => f #"c"
35
36val _ = test (f, #"d", 2)