R = A B C
disjunkte (diskriminierte) Vereinigung (Pascal)
type tag = ( eins, zwei, drei ); type R = record case t : tag of eins : ( a_value : A ); zwei : ( b_value : B ); drei : ( c_value : C ); end record;
nicht diskriminiert (C):
typedef union { A a_value; B b_value; C c_value; }