File "pr7620_bad.ml", line 10, characters 17-19: 10 | (function `A | `B -> () : 'a) (`A : [`A]); ^^ Error: This pattern matches values of type "[? `B ]" but a pattern was expected which matches values of type "[ `A ]" The second variant type does not allow tag(s) "`B"