Without generics, sum types would have to be a built-in like maps and arrays.
With generics, discriminated unions can take on all sorts of user-defined shapes.
With generics, discriminated unions can take on all sorts of user-defined shapes.
Without generics but with sum types, the sum types can still take on all sorts of user-defined shapes. It's just that the types of its various alternatives are fixed at declaration.