[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