Go proposal: spec: sum types based on general interfaces
github.com