packages feed

multirec-0.3: multirec.cabal

name:			multirec
version:		0.3
license:		BSD3
license-file:		LICENSE
author:			Alexey Rodriguez,
                        Stefan Holdermans,
                        Andres Löh,
                        Johan Jeuring
maintainer:		generics@haskell.org
category:		Generics
synopsis:		Generic programming for families of recursive datatypes
homepage:		http://www.cs.uu.nl/wiki/GenericProgramming/Multirec
description:
  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, families of
  mutually recursive datatypes have been excluded.
  .
  With the multirec library, we provide a mechanism to talk about fixed
  points of families 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.
  .
  We expect that the library will be especially interesting for compiler
  writers, because ASTs are typically families of mutually recursive datatypes,
  and with multirec it becomes easy to write generic functions on ASTs.
  .
  The library is based on ideas described in the paper:
  .
  *  Alexey Rodriguez, Stefan Holdermans, Andres Löh, Johan Jeuring.
     /Generic programming with fixed points for mutually recursive datatypes/.
     Technical Report, Universiteit Utrecht
     (<http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-019.pdf>).
 
stability:		experimental
build-type:		Simple
cabal-version:		>= 1.2.1
tested-with:		GHC == 6.8.3, GHC == 6.10.3
hs-source-dirs:		src
exposed-modules:	Generics.MultiRec

			-- Base
                        Generics.MultiRec.Base
			Generics.MultiRec.Constructor
                        Generics.MultiRec.TH

			-- Generic functions
			Generics.MultiRec.ConNames
			Generics.MultiRec.HFunctor
			Generics.MultiRec.HFix
			Generics.MultiRec.Fold
			Generics.MultiRec.FoldK
			Generics.MultiRec.FoldAlg
			Generics.MultiRec.FoldAlgK
			Generics.MultiRec.Compos
			Generics.MultiRec.Eq
			Generics.MultiRec.Show

			-- Extra
			Generics.MultiRec.TEq

extra-source-files:	examples/AST.hs
                        examples/ASTUse.hs
                        examples/ASTTHUse.hs
			examples/ASTExamples.hs
			examples/Single.hs
			examples/SingleUse.hs
			examples/SingleTHUse.hs
			examples/SingleExamples.hs
			CREDITS
build-depends:		base >= 3.0 && < 5,
                        template-haskell >= 2.2 && < 2.4