
\begin{slide}{Vergleich Typklassen/Interfaces}

\begin{verbatim}
interface I { }   |   class I where { }
\end{verbatim}
  
Polymorphie auf der Argumentseite:
\begin{verbatim}
boolean foo (I x) { ... }  // universell
foo :: I t => t -> Bool    -- universell
\end{verbatim}
  
auf der Resultatseite:
\begin{verbatim}
I bar (String s) { ... }   // existenziell
bar :: I t => String -> t  -- universell
\end{verbatim}

\end{slide}
