decl test_variants : Unit -> Unit def test_variants = { var variant1 = | 'a' | 2 | "hello" var | val | err = f x ; val -> "something" // open variant as value in expr ; val -!> "nothing" // open variant as None in expr match variant1 with | 'a' -> "something" | 2 -> "something" | "hello" -> "something" | a -> "Something" | String.of str -> "something" | Int.of i -> "someting" | 11 -> "nothing" }