1    do
2        let x = 1
3        val s = case x of
4            1 -> "1"
5            2 -> "2"
6    
7        assert s == "1"
8    
9    do
10       val x = 1
11       val y = 3
12       val s = case x + y of
13           2 -> "2"
14           3 -> "3"
15           4 -> "4"
16   
17       assert s == "4"
18   
19   do
20       let maybe_x : Option<u32> = Some 5
21       let maybe_y : Option<u32> = None
22       let s = case (maybe_x, maybe_y) of
23           None, None -> "none none"
24           Some x, None -> "$x none"
25           None, Some y -> "none $y"
26           Some x, _ -> "$x some"
27   
28       assert s == "5 none"
29   
30   do
31       let x = 1
32       val s = case x of
33           1 if false -> "false"
34           1 if true -> "true"
35           else -> "else"
36   
37       assert s == "true"
38   
39   do
40       let x = 1
41       case x
42       of   1 if false -> "false"
43       else 1 if true -> "true"
44       else -> "else"
45       |> { assert _ == "true" }
46   
47   do
48       let x = 1
49       let s = case x
50       of   1 if false -> "false"
51       else 1 if true -> "true"
52       else -> "else"
53   
54       assert s == "true"
55