\subsection{Paper organistation}
\label{sec:intro:org}
In this paper we present different advantages of working with imperative code
in a functional style. We do this by means of a case study, an interpreter of
the language While~\citep{proganal}. We will describe this example language
briefly in \autoref{sec:intro:while}. Before discussing our interpreter, we
will discuss basic definition that will be helpful in \autoref{sec:predefs}.
Since extensive research has already been done into lexing and parsing
\citep[see e.g.][]{yard}, will skip these steps and assume we already have an
abstract syntax tree (AST). This AST is described in \autoref{sec:ast}. In
\autoref{sec:eval} we will discuss different possibilities of evaluating
mathematical expressions. Finally, in \autoref{sec:interp} we will propose a
While interpreter. We finish by articulating the advantages of functional
interpretation in \autoref{sec:concl}.

\autoref{sec:ftypes} lists the functions and types that the reader is supposed
to know.
