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