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