[Haskell-cafe] Using Data Types a la Carte

Emil Axelsson emax at chalmers.se
Fri Apr 20 05:50:58 CEST 2012


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




More information about the Haskell-Cafe mailing list