type p<`a, `b> = P(`a, `b)
type l = { l : int }

let x : int = match (P<l, int>({ l = 22 }<>, 33)) {
  P<l, int>( { u = (x : int) }<>, (y : int)) -> x + y
}