[Haskell] ANNOUNCE: multirec-0.2
Andres Loeh
andres at cs.uu.nl
Tue Jan 13 10:05:05 EST 2009
multirec-0.2: Generic programming with systems of recursive datatypes
=====================================================================
Many generic programs require information about the recursive positions
of a datatype. Examples include the generic fold, generic rewriting or
the Zipper data structure. Several generic programming systems allow to
write such functions by viewing datatypes as fixed points of a pattern
functor. Traditionally, this view has been limited to so-called regular
datatypes such as lists and binary trees. In particular, systems of
mutually recursive datatypes have been excluded.
With the multirec library, we provide a mechanism to talk about fixed
points of systems of datatypes that may be mutually recursive. On top
of this representations, generic functions such as the fold or the Zipper
can then be defined.
Changelog (changes w.r.t. multirec-0.1)
---------------------------------------
* Constructor information and generic show (Generics.MultiRec.Show).
* Variants of fold (Generics.MultiRec.FoldAlg) that make the definition of
algebras significantly more convenient.
* Template Haskell code to generate the boilerplate required to
instantiate this library to a system of datatypes.
Requirements
------------
* GHC 6.8.3 or later
* Cabal 1.2.1 or later
Download
--------
With cabal-install:
cabal install multirec
Get the package:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/multirec
Get the source:
svn checkout https://svn.cs.uu.nl:12443/repos/dgp-haskell/multirec/trunk
Bugs & Support
--------------
Report issues, request features, or just discuss the library with the
authors, maintainers, and other interested persons at:
http://www.haskell.org/mailman/listinfo/generics
--
Andres Loeh, Universiteit Utrecht
mailto:andres at cs.uu.nl mailto:mail at andres-loeh.de
http://www.andres-loeh.de
More information about the Haskell
mailing list