\begin{slide}{Beispiel zur Polymorphie (I)}

  \begin{itemize}
  \item 
Was ist der allgemeinste Typ von
\begin{verbatim}
f1 g x = length $ g [g x]
\end{verbatim}
\item
  Beispiel für einen typkorrekten Aufruf von \verb|f1|?
\item
  Ist dieser Aufruf typkorrekt?
\begin{verbatim}
f1 ( \ x -> x ) 0
\end{verbatim}
  
  \end{itemize}

\end{slide}

\begin{slide}{Beispiel zur Polymorphie (II)}

\verb|f2 ( \ x -> x ) 0| für
\begin{verbatim}
f2 g x = length $ g [g x]
\end{verbatim}

\bigskip


geht (nur) so:
\begin{verbatim}
f2 :: (forall a. a->a) -> Int -> Int
\end{verbatim}

\bigskip

das ist nicht das gleiche wie:
\begin{verbatim}
f1 :: forall a . (a->a) -> Int -> Int
f1 g x = length $ g [g x]
\end{verbatim}

  
  
\end{slide}
