We give a Haskell implementation of Filinski’s normalisation by evaluation algorithm for the computational lambda-calculus with sums. Taking advantage of extensions to the GHC compiler, our implementation represents objectlanguage types as Haskell types and ensures that type errors are detected statically.Following Filinski, the implementation is parameterised over a residualising monad. The standard residualising monad for sums is a continuation monad. Defunctionalising the uses of the continuation monad we present the bindingtree monad as an alternative.
|Publication status||Published - 2009|
|Event||2009 Workshop on Normalization by Evaluation - Los Angeles, United States|
Duration: 15 Aug 2009 → 15 Aug 2009
|Conference||2009 Workshop on Normalization by Evaluation|
|Period||15/08/09 → 15/08/09|