type or<`a, `b> = Left(`a) | Right(`b) let x : int = match (Left(22)) { Left((x : int)) | Right((x : int)) -> x }