implemented as the code shown in Listing~\ref{lst:exshallow}. Note that much of
the internals of the language can be hidden using monads.
-\begin{lstlisting}[label={lst:exshallow},%
+\begin{lstlisting}[language=Clean,label={lst:exshallow},%
caption={A minimal shallow \gls{EDSL}}]
:: Env = ... // Some environment
:: DSL a = DSL (Env -> a)