Monadic Interpreters for Core Curry

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).

Change Log

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