[Haskell-cafe] Foldable for BNFC generated tree
johanj at cs.uu.nl
Sat May 16 14:04:55 EDT 2009
>> 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
>> 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:
> 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:
More information about the Haskell-Cafe