struct
union types provide "multi-faceted" struct objects.
union
Example: nodes in an expression tree
All objects are nodes, but each contains an operator, a variable or a value.