diff options
Diffstat (limited to 'tests/case.ur')
-rw-r--r-- | tests/case.ur | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/case.ur b/tests/case.ur new file mode 100644 index 00000000..b131b27b --- /dev/null +++ b/tests/case.ur @@ -0,0 +1,16 @@ +datatype t = A | B + +val swap = fn x : t => case x of A => B | B => A + +datatype u = C of t | D + +val out = fn x : u => case x of C y => y | D => A + +datatype nat = O | S of nat + +val is_two = fn x : nat => + case x of S (S O) => A | _ => B + +val zero_is_two = is_two O +val one_is_two = is_two (S O) +val two_is_two = is_two (S (S O)) |