\begin{slide}{Summen-Typen}

$R = A \cup B \cup C$

disjunkte (diskriminierte) Vereinigung (Pascal)
\begin{verbatim}
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;
\end{verbatim}

nicht diskriminiert (C):
\begin{verbatim}
typedef union {
    A a_value; B b_value; C c_value;
}
\end{verbatim}

\end{slide}

