decl test_variants : Unit -> Unit def test_variants = { var variant1 = | 'a' | 2 | "hello" var | val | err = f x // optional types for each ; val -> "something" // open variant as value in expr ; val -!> "nothing" // open variant as None in expr ; ?err // open variant as value, or return None (if possible), operator match variant1 with | 'a' -> "something" | 2 -> "something" | "hello" -> "something" | a -> "Something" | String.of str -> "something" | Int.of i -> "someting" | 11 -> "nothing" } // ???????????????????????