\section{Future work}
\label{sec:disc}

As we have seen in \autoref{sec:interp:cond}, not all rules that can be
specified in mathematical notation are trivial to translate to a functional
program. It should be investigated under what conditions rules can or cannot be
translated directly. What kind of functional tools can we come up with to make
this easier?

Our claim has been that semantic rules can be translated almost directly to an
implementation in a functional language. We can then ask ourselves: is it
possible to store rules in a data structure and write a universal interpreter,
say \CI{run :: [Rule stm state] stm state -> Either Error state} (note the parametrization of
\CI{stm} and \CI{state})? Under what conditions is it possible for such a
universal interpreter to choose those rules that allow for the most efficient
interpretation?
