\begin{slide}{Parser für (geschachtelte) Listen}

konkrete Syntax:
\begin{verbatim}
(foo (bar baz ()) 1234)
\end{verbatim}
abstrakte Syntax:
\begin{verbatim}
data Expression 
    = Identifier String
    | List [ Expression ]
\end{verbatim}
\begin{itemize}
\item parse: \verb|String -> Expression|
\item print: \verb|Expression -> String|
\item pretty-print: \verb|Expression -> Doc|
\end{itemize}

\end{slide}
