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