Support sum types and tweak type representation.