\begin{abstract} As the tools provided by programming languages become more abstract and semantically complex, it becomes necessary to have systems that can reason about these programming languages on a high abstraction level. Functional languages can aid interpreter and compiler designers: abstraction is trivial, and the close link with mathematics makes it easy to prove properties about programs. By means of a case study, an interpreter of the language While~\citep{proganal}, the advantages of a functional language for imperative code interpretation are shown. \end{abstract}