The important detail that has bogged down almost every union type discussion is "zero values". What would be the zero value of a union type?
If you've written Go you know the entire language is built around zero values, disabling it for some types is not an option.