fun : [`a, `b] `a * `b -> `a fst ((x : `b), (y : `a)) = x let main : int = fst (37, 'a')