%if false Copyright (c) 2009, ETH Zurich. All rights reserved. This file is distributed under the terms in the attached LICENSE file. If you do not find this file, copies can be found by writing to: ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group. %endif %include polycode.fmt %if false > module IL.FoF.Run where > import Semantics > import Constructs > import PureExpressions > import {-# SOURCE #-} Expressions %endif \section{Evaluator} \label{sec:il_fof_run} Just as for the compiler, described in the previous section, the implementation of the Filet-o-Fish interpreter is automatically derived from the one-step interpreters. Again, |foldSemantics| comes to the rescue and computes the interpreter: > run :: Semantics FoFConst PureExpr -> Heap -> (PureExpr, Heap) > run = foldSemantics (,) runAlgebra