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