A union type is a nominal, heterogeneous C-like union, denoted by the name of
A union access transmutes the content of the union to the type of the accessed
field. Since transmutes can cause unexpected or undefined behaviour,
required to read from a union field or to write to a field that doesn't
The memory layout of a
union is undefined by default, but the
attribute can be used to fix a layout.