Here is the source code for three different versions of the monadic interpreter discussed in the paper "A Monadic Semantics for Core Curry" (ps) (pdf).
The code presented here differs slightly in some details from that presented in the paper.
Interpreter for call-by-need functional language
Interpreter for language with logic variables, non-determinism, and narrowing added
Interpreter for language with concurrency and residuation added
Supporting code for finite maps (needed for all interpreters)
Supporting code for forests (needed for all but first interpreter)
All the code is standard Haskell98, and has been tested under Hugs (version November 2002).
14 July 2003 Removed some unused type synonyms from all three interpreters.
5 May 2004 Updated InterpFLR.hs to match final ENTCS version of paper.
21 May 2004 Removed bogus And constructor from InterpFLR.hs