ヴァリアントってパターンマッチできるんですねー、なんて言ったら流石に初心者すぎるかも知れませんが、次のようなパターンマッチが可能なことは知りませんでした。
# type myvariant = [`A | `B];; type myvariant = [ `A | `B ] # let f x = match x with | #myvariant -> "myvariant" | `C -> "C" ;; val f : [< `A | `B | `C ] -> string = <fun> # f `A;; - : string = "myvariant" # f `B;; - : string = "myvariant" # f `C;; - : string = "C"
"#" でヴァリアント全部のパターンを作ることができたんですね。。。