annoyingly go can't have proper sum types, as the requirement for a default value for everything doesn't make any sense for sum types
If the humans choose to make an exception for that, it can be done. Granted, the planning that has taken place thus far has rejected such an exception, but there is nothing about Go that fundamentally prevents carving out an exception.