type p<`a, `b> = P(`a, `b) let x : int = match (P(22, 33)) { P((x : int), (_ : int)) & P((_ : int), (x : int)) -> x + x }