Constructs a SumType holding a specific value.
Constructs a SumType that's a copy of another SumType
Calls the destructor of the SumType's current value.
@disabled if any member type is non-copyable.
The types a SumType can hold.
Assigns a value to a SumType.
Copies the value from another SumType into this one.
Moves the value from another SumType into this one.
Compares two SumTypes for equality.