I have:type _ t =| Foo1 : 'a * int -> int t| Foo2 : 'a * string -> 'a tbut I really want to merge these two cases. I want the return type to be based on the second arg when the second arg is int, and be based on the first arg otherwise. Any way to accomplish that?