2012-04-19 22:31, Alex Rozenshteyn skrev:
I'm trying to implement a set of languages with a large overlap between them.

 From what I understand, there are 3 main ways to do this: Finally
Tagless, Data Types a la Carte, or manually.

I'm currently leaning toward DTalaC, but not strongly.

There seem to be two packages which implement the DTalaC style:
syntactic and compdata. Alternatively, I can write the common code
myself.

Does anyone have recommendations for which one to use, and any
materials for learning to use them?

I can only give useful comments on Syntactic. The core part has been described in my draft ICFP submission:


http://www.cse.chalmers.se/~emax/documents/astModel-icfp2012-submitted.pdf

For more advanced usage (of defining embedded languages), see NanoFeldspar, which is included in the Syntactic package.

Syntactic doesn't really support mutually recursive data types, but they can be encoded using the technique described here:

  http://www.haskell.org/pipermail/haskell-cafe/2011-May/091770.html

This seems to be similar to how CompData handles mutually recursive types.

HTH

/ Emil


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to