Hi Deniz,

Deniz Dogan wrote:

So, basically I'd like some sort of folding functionality for these
data types, without having to hack the lexer/parser myself
(parameterising the data types), because as I said they're being
generated by BNFC.

What exactly do you mean by folding functionality? Folding as in the
Foldable type class applies to containers, which your data type isn't.
Perhaps you're looking for generic programming?

There are several good GP libraries out there:

* EMGM: http://www.cs.uu.nl/wiki/GenericProgramming/EMGM
* Uniplate: http://community.haskell.org/~ndm/uniplate/
* SYB: http://www.cs.vu.nl/boilerplate/

See also Neil Mitchell's blog for some examples:
http://neilmitchell.blogspot.com/2009/03/concise-generic-queries.html

You're right, what I was asking for didn't make much sense... I was
really looking for GP.

If I interpret your question correctly, you want a fold for a set of
mutually recursive datatypes without type parameters. This function is
available in the generic programming library multirec:

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/multirec

Kind reagrds,

Johan Jeuring


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

Reply via email to