packages feed

Cabal revisions of compdata-0.7.0.2

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-Name:			compdata-Version:		0.7.0.2-Synopsis:            	Compositional Data Types-Description:--  Based on Wouter Swierstra's Functional Pearl /Data types a la carte/-  (Journal of Functional Programming, 18(4):423-436, 2008,-  <http://dx.doi.org/10.1017/S0956796808006758>),-  this package provides a framework for defining recursive-  data types in a compositional manner. The fundamental idea of-  /compositional data types/ (Workshop on Generic Programming, 83-94, 2011,-  <http://dx.doi.org/10.1145/2036918.2036930>) is to separate the-  signature of a data type-  from the fixed point construction that produces its recursive-  structure. By allowing to compose and decompose signatures,-  compositional data types enable to combine data types in a flexible-  way. The key point of Wouter Swierstra's original work is to define-  functions on compositional data types in a compositional manner as-  well by leveraging Haskell's type class machinery.-  .-  Building on that foundation, this library provides additional-  extensions and (run-time) optimisations which make compositional data types-  usable for practical implementations. In particular, it-  provides an excellent framework for manipulating and analysing-  abstract syntax trees in a type-safe manner. Thus, it is perfectly-  suited for programming language implementations, especially, in an environment-  consisting of a family of tightly interwoven /domain-specific languages/.-  .-  In concrete terms, this package provides the following features:-  .-  *  Compositional data types in the style of Wouter Swierstra's-     Functional Pearl /Data types a la carte/.-  .-  *  Modular definition of functions on compositional data types through-     catamorphisms and anamorphisms as well as more structured-     recursion schemes such as primitive recursion  and co-recursion,-     and course-of-value iteration and co-iteration.-  .-  *  Support for monadic computations via monadic variants of all-     recursion schemes.-  .-  *  Support of a succinct programming style over compositional data types-     via generic programming combinators that allow various forms of-     generic transformations and generic queries.-  .-  *  Generalisation of compositional data types (terms) to-     compositional data types \"with holes\" (contexts). This allows-     flexible reuse of a wide variety of catamorphisms (called-     /term homomorphisms/) as well as an efficient composition of them.-  .-  *  Operations on signatures, for example, to add and remove-     annotations of abstract syntax trees. This includes combinators to-     propagate annotations fully automatically through certain-     term homomorphisms.-  .-  *  Optimisation of the implementation of recursion schemes. This-     includes /short-cut fusion/ style optimisation rules which yield a-     performance boost of up to factor six.-  .-  *  Automatic derivation of instances of all relevant type classes for-     using compositional data types via /Template Haskell/. This includes-     instances of 'Prelude.Eq', 'Prelude.Ord' and 'Prelude.Show' that are-     derived via instances for functorial variants of them. Additionally,-     also /smart constructors/, which allow to easily construct inhabitants-     of compositional data types, are automatically generated.-  .-  *  /Mutually recursive data types/ and-     /generalised algebraic data types (GADTs)/. All of the above is also lifted-     to families of mutually recursive data types and (more generally) GADTs.-     This extension resides in the module "Data.Comp.Multi".-  .-  * /Parametric compositional data types/ (Workshop on Mathematically-     Structured Functional Programming, 3-24, 2012,-     <http://dx.doi.org/10.4204/EPTCS.76.3>). All of the above is also-     lifted to parametric data types, which enables support for-     parametric higher-order abstract syntax (PHOAS). This extension-     resides in the module "Data.Comp.Param".-  .-  *  /Generalised parametric compositional data types/. All of the above is also-     lifted to generalised parametric data types, which enables support for-     typed parametric higher-order abstract syntax (PHOAS). This extension-     resides in the module "Data.Comp.MultiParam".-  .-  * Advanced recursion schemes derived from tree automata. These-    recursion schemes allow for a higher degree of modularity and make-    it possible to apply fusion. See /Modular Tree Automata/-    (Mathematics of Program Construction, 263-299, 2012,-    <http://dx.doi.org/10.1007/978-3-642-31113-0_14>) and -    /Programming Macro Tree Transducers/ (Workshop on Generic Programming, 61-72,-    2013, <http://dx.doi.org/10.1145/2502488.2502489>).-  .--  Examples of using (generalised) (parametric) compositional data types are-  bundled with the package in the libray @examples@.--Category:            	Generics-License:		BSD3-License-file:		LICENSE-Author:			Patrick Bahr, Tom Hvitved-Maintainer:		paba@diku.dk-Build-Type:		Simple-Cabal-Version:          >=1.9.2--extra-source-files:-  -- test files-  testsuite/tests/Data_Test.hs,-  testsuite/tests/Data/Comp_Test.hs,-  testsuite/tests/Data/Comp/Equality_Test.hs,-  testsuite/tests/Data/Comp/Variables_Test.hs,-  testsuite/tests/Data/Comp/Multi_Test.hs,-  testsuite/tests/Data/Comp/Multi/Variables_Test.hs,-  testsuite/tests/Data/Comp/Examples_Test.hs,-  testsuite/tests/Data/Comp/Examples/Comp.hs,-  testsuite/tests/Data/Comp/Examples/Multi.hs,-  testsuite/tests/Data/Comp/Examples/Param.hs,-  testsuite/tests/Data/Comp/Examples/MultiParam.hs,-  testsuite/tests/Test/Utils.hs-  -- benchmark files-  benchmark/Test.hs-  benchmark/Benchmark.hs-  benchmark/DataTypes.hs-  benchmark/Functions.hs-  benchmark/DataTypes/Comp.hs-  benchmark/DataTypes/Transform.hs-  benchmark/DataTypes/Standard.hs-  benchmark/Multi/DataTypes/Comp.hs-  benchmark/Multi/Functions/Comp/Eval.hs-  benchmark/Multi/Functions/Comp/Desugar.hs-  benchmark/Transformations.hs-  benchmark/Functions/Comp.hs-  benchmark/Functions/Comp/Eval.hs-  benchmark/Functions/Comp/Desugar.hs-  benchmark/Functions/Comp/FreeVars.hs-  benchmark/Functions/Comp/Inference.hs-  benchmark/Functions/Standard/Eval.hs-  benchmark/Functions/Standard/Desugar.hs-  benchmark/Functions/Standard/FreeVars.hs-  benchmark/Functions/Standard/Inference.hs-  benchmark/Functions/Standard.hs-  -- example files-  examples/Examples/Common.hs-  examples/Examples/Eval.hs-  examples/Examples/EvalM.hs-  examples/Examples/Desugar.hs-  examples/Examples/Automata/Compiler.hs,-  examples/Examples/Multi/Common.hs-  examples/Examples/Multi/Eval.hs-  examples/Examples/Multi/EvalI.hs-  examples/Examples/Multi/EvalM.hs-  examples/Examples/Multi/Desugar.hs-  examples/Examples/Param/Lambda.hs-  examples/Examples/Param/Names.hs-  examples/Examples/Param/Graph.hs-  examples/Examples/MultiParam/Lambda.hs-  examples/Examples/MultiParam/FOL.hs--library-  Exposed-Modules:      Data.Comp,-                        Data.Comp.Annotation,-                        Data.Comp.Sum,-                        Data.Comp.Term,-                        Data.Comp.Algebra,-                        Data.Comp.Equality,-                        Data.Comp.Ordering,-                        Data.Comp.DeepSeq,-                        Data.Comp.Generic-                        Data.Comp.TermRewriting,-                        Data.Comp.Arbitrary,-                        Data.Comp.Show,-                        Data.Comp.Variables,-                        Data.Comp.Decompose,-                        Data.Comp.Unification,-                        Data.Comp.Derive,-                        Data.Comp.Matching,-                        Data.Comp.Desugar,-                        Data.Comp.Automata,-                        Data.Comp.MacroAutomata,-                        Data.Comp.Automata.Product,-                        Data.Comp.Number,-                        Data.Comp.Thunk,-                        Data.Comp.Ops,--                        Data.Comp.Multi,-                        Data.Comp.Multi.Term,-                        Data.Comp.Multi.Sum,-                        Data.Comp.Multi.HFunctor,-                        Data.Comp.Multi.HFoldable,-                        Data.Comp.Multi.HTraversable,-                        Data.Comp.Multi.Algebra,-                        Data.Comp.Multi.Annotation,-                        Data.Comp.Multi.Show,-                        Data.Comp.Multi.Equality,-                        Data.Comp.Multi.Ordering,-                        Data.Comp.Multi.Variables,-                        Data.Comp.Multi.Ops,-                        Data.Comp.Multi.Number,-                        Data.Comp.Multi.Derive-                        Data.Comp.Multi.Generic,-                        Data.Comp.Multi.Desugar,--                        Data.Comp.Param,-                        Data.Comp.Param.Term,-                        Data.Comp.Param.FreshM,-                        Data.Comp.Param.Sum,-                        Data.Comp.Param.Difunctor,-                        Data.Comp.Param.Ditraversable,-                        Data.Comp.Param.Algebra,-                        Data.Comp.Param.Annotation,-                        Data.Comp.Param.Ops-                        Data.Comp.Param.Equality-                        Data.Comp.Param.Ordering-                        Data.Comp.Param.Show-                        Data.Comp.Param.Derive,-                        Data.Comp.Param.Desugar-                        Data.Comp.Param.Thunk--                        Data.Comp.MultiParam,-                        Data.Comp.MultiParam.Term,-                        Data.Comp.MultiParam.FreshM,-                        Data.Comp.MultiParam.Sum,-                        Data.Comp.MultiParam.HDifunctor,-                        Data.Comp.MultiParam.HDitraversable,-                        Data.Comp.MultiParam.Algebra,-                        Data.Comp.MultiParam.Annotation,-                        Data.Comp.MultiParam.Ops-                        Data.Comp.MultiParam.Equality-                        Data.Comp.MultiParam.Ordering-                        Data.Comp.MultiParam.Show-                        Data.Comp.MultiParam.Derive,-                        Data.Comp.MultiParam.Desugar--  Other-Modules:        Data.Comp.Derive.Utils,-                        Data.Comp.Derive.Equality,-                        Data.Comp.Derive.Ordering,-                        Data.Comp.Derive.Arbitrary,-                        Data.Comp.Derive.Show,-                        Data.Comp.Derive.DeepSeq,-                        Data.Comp.Derive.SmartConstructors,-                        Data.Comp.Derive.SmartAConstructors,-                        Data.Comp.Derive.Foldable,-                        Data.Comp.Derive.Traversable,-                        Data.Comp.Derive.Injections,-                        Data.Comp.Derive.Projections,-                        Data.Comp.Derive.HaskellStrict,-                        Data.Comp.Automata.Product.Derive,--                        Data.Comp.Multi.Derive.HFunctor,-                        Data.Comp.Multi.Derive.HFoldable,-                        Data.Comp.Multi.Derive.HTraversable,-                        Data.Comp.Multi.Derive.Equality,-                        Data.Comp.Multi.Derive.Ordering,-                        Data.Comp.Multi.Derive.Show,-                        Data.Comp.Multi.Derive.SmartConstructors-                        Data.Comp.Multi.Derive.SmartAConstructors-                        Data.Comp.Multi.Derive.Injections,-                        Data.Comp.Multi.Derive.Projections,--                        Data.Comp.Param.Derive.Difunctor,-                        Data.Comp.Param.Derive.Ditraversable,-                        Data.Comp.Param.Derive.Equality,-                        Data.Comp.Param.Derive.Ordering,-                        Data.Comp.Param.Derive.Show,-                        Data.Comp.Param.Derive.SmartConstructors,-                        Data.Comp.Param.Derive.SmartAConstructors,-                        Data.Comp.Param.Derive.Injections,-                        Data.Comp.Param.Derive.Projections,--                        Data.Comp.MultiParam.Derive.HDifunctor,-                        Data.Comp.MultiParam.Derive.Equality,-                        Data.Comp.MultiParam.Derive.Ordering,-                        Data.Comp.MultiParam.Derive.Show,-                        Data.Comp.MultiParam.Derive.SmartConstructors,-                        Data.Comp.MultiParam.Derive.SmartAConstructors,-                        Data.Comp.MultiParam.Derive.Injections,-                        Data.Comp.MultiParam.Derive.Projections--  Build-Depends:	base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, th-expand-syns, transformers-  hs-source-dirs:	src-  ghc-options:          -W---Test-Suite test-  Type:                 exitcode-stdio-1.0-  Main-is:		Data_Test.hs-  hs-source-dirs:	src testsuite/tests examples-  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, HUnit, test-framework, test-framework-hunit, test-framework-quickcheck2, derive, th-expand-syns, deepseq, transformers--Benchmark algebra-  Type:                 exitcode-stdio-1.0-  Main-is:		Benchmark.hs-  hs-source-dirs:	src benchmark-  ghc-options:          -W -O2-  -- Disable short-cut fusion rules in order to compare optimised and unoptimised code.-  cpp-options:          -DNO_RULES-  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, criterion, random, uniplate, th-expand-syns, transformers--Benchmark macro-  Type:                 exitcode-stdio-1.0-  Main-is:		Benchmark.hs-  hs-source-dirs:	src benchmark-macro-  ghc-options:          -W -O2-  -- Disable short-cut fusion rules in order to compare optimised and unoptimised code.-  cpp-options:          -DNO_RULES-  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, criterion, random, uniplate, th-expand-syns, transformers---source-repository head-  type:     hg-  location: https://bitbucket.org/paba/compdata+Name:			compdata
+Version:		0.7.0.2
+x-revision: 1
+Synopsis:            	Compositional Data Types
+Description:
+
+  Based on Wouter Swierstra's Functional Pearl /Data types a la carte/
+  (Journal of Functional Programming, 18(4):423-436, 2008,
+  <http://dx.doi.org/10.1017/S0956796808006758>),
+  this package provides a framework for defining recursive
+  data types in a compositional manner. The fundamental idea of
+  /compositional data types/ (Workshop on Generic Programming, 83-94, 2011,
+  <http://dx.doi.org/10.1145/2036918.2036930>) is to separate the
+  signature of a data type
+  from the fixed point construction that produces its recursive
+  structure. By allowing to compose and decompose signatures,
+  compositional data types enable to combine data types in a flexible
+  way. The key point of Wouter Swierstra's original work is to define
+  functions on compositional data types in a compositional manner as
+  well by leveraging Haskell's type class machinery.
+  .
+  Building on that foundation, this library provides additional
+  extensions and (run-time) optimisations which make compositional data types
+  usable for practical implementations. In particular, it
+  provides an excellent framework for manipulating and analysing
+  abstract syntax trees in a type-safe manner. Thus, it is perfectly
+  suited for programming language implementations, especially, in an environment
+  consisting of a family of tightly interwoven /domain-specific languages/.
+  .
+  In concrete terms, this package provides the following features:
+  .
+  *  Compositional data types in the style of Wouter Swierstra's
+     Functional Pearl /Data types a la carte/.
+  .
+  *  Modular definition of functions on compositional data types through
+     catamorphisms and anamorphisms as well as more structured
+     recursion schemes such as primitive recursion  and co-recursion,
+     and course-of-value iteration and co-iteration.
+  .
+  *  Support for monadic computations via monadic variants of all
+     recursion schemes.
+  .
+  *  Support of a succinct programming style over compositional data types
+     via generic programming combinators that allow various forms of
+     generic transformations and generic queries.
+  .
+  *  Generalisation of compositional data types (terms) to
+     compositional data types \"with holes\" (contexts). This allows
+     flexible reuse of a wide variety of catamorphisms (called
+     /term homomorphisms/) as well as an efficient composition of them.
+  .
+  *  Operations on signatures, for example, to add and remove
+     annotations of abstract syntax trees. This includes combinators to
+     propagate annotations fully automatically through certain
+     term homomorphisms.
+  .
+  *  Optimisation of the implementation of recursion schemes. This
+     includes /short-cut fusion/ style optimisation rules which yield a
+     performance boost of up to factor six.
+  .
+  *  Automatic derivation of instances of all relevant type classes for
+     using compositional data types via /Template Haskell/. This includes
+     instances of 'Prelude.Eq', 'Prelude.Ord' and 'Prelude.Show' that are
+     derived via instances for functorial variants of them. Additionally,
+     also /smart constructors/, which allow to easily construct inhabitants
+     of compositional data types, are automatically generated.
+  .
+  *  /Mutually recursive data types/ and
+     /generalised algebraic data types (GADTs)/. All of the above is also lifted
+     to families of mutually recursive data types and (more generally) GADTs.
+     This extension resides in the module "Data.Comp.Multi".
+  .
+  * /Parametric compositional data types/ (Workshop on Mathematically
+     Structured Functional Programming, 3-24, 2012,
+     <http://dx.doi.org/10.4204/EPTCS.76.3>). All of the above is also
+     lifted to parametric data types, which enables support for
+     parametric higher-order abstract syntax (PHOAS). This extension
+     resides in the module "Data.Comp.Param".
+  .
+  *  /Generalised parametric compositional data types/. All of the above is also
+     lifted to generalised parametric data types, which enables support for
+     typed parametric higher-order abstract syntax (PHOAS). This extension
+     resides in the module "Data.Comp.MultiParam".
+  .
+  * Advanced recursion schemes derived from tree automata. These
+    recursion schemes allow for a higher degree of modularity and make
+    it possible to apply fusion. See /Modular Tree Automata/
+    (Mathematics of Program Construction, 263-299, 2012,
+    <http://dx.doi.org/10.1007/978-3-642-31113-0_14>) and 
+    /Programming Macro Tree Transducers/ (Workshop on Generic Programming, 61-72,
+    2013, <http://dx.doi.org/10.1145/2502488.2502489>).
+  .
+
+  Examples of using (generalised) (parametric) compositional data types are
+  bundled with the package in the libray @examples@.
+
+Category:            	Generics
+License:		BSD3
+License-file:		LICENSE
+Author:			Patrick Bahr, Tom Hvitved
+Maintainer:		paba@diku.dk
+Build-Type:		Simple
+Cabal-Version:          >=1.9.2
+bug-reports:            https://github.com/pa-ba/compdata/issues
+
+extra-source-files:
+  -- test files
+  testsuite/tests/Data_Test.hs,
+  testsuite/tests/Data/Comp_Test.hs,
+  testsuite/tests/Data/Comp/Equality_Test.hs,
+  testsuite/tests/Data/Comp/Variables_Test.hs,
+  testsuite/tests/Data/Comp/Multi_Test.hs,
+  testsuite/tests/Data/Comp/Multi/Variables_Test.hs,
+  testsuite/tests/Data/Comp/Examples_Test.hs,
+  testsuite/tests/Data/Comp/Examples/Comp.hs,
+  testsuite/tests/Data/Comp/Examples/Multi.hs,
+  testsuite/tests/Data/Comp/Examples/Param.hs,
+  testsuite/tests/Data/Comp/Examples/MultiParam.hs,
+  testsuite/tests/Test/Utils.hs
+  -- benchmark files
+  benchmark/Test.hs
+  benchmark/Benchmark.hs
+  benchmark/DataTypes.hs
+  benchmark/Functions.hs
+  benchmark/DataTypes/Comp.hs
+  benchmark/DataTypes/Transform.hs
+  benchmark/DataTypes/Standard.hs
+  benchmark/Multi/DataTypes/Comp.hs
+  benchmark/Multi/Functions/Comp/Eval.hs
+  benchmark/Multi/Functions/Comp/Desugar.hs
+  benchmark/Transformations.hs
+  benchmark/Functions/Comp.hs
+  benchmark/Functions/Comp/Eval.hs
+  benchmark/Functions/Comp/Desugar.hs
+  benchmark/Functions/Comp/FreeVars.hs
+  benchmark/Functions/Comp/Inference.hs
+  benchmark/Functions/Standard/Eval.hs
+  benchmark/Functions/Standard/Desugar.hs
+  benchmark/Functions/Standard/FreeVars.hs
+  benchmark/Functions/Standard/Inference.hs
+  benchmark/Functions/Standard.hs
+  -- example files
+  examples/Examples/Common.hs
+  examples/Examples/Eval.hs
+  examples/Examples/EvalM.hs
+  examples/Examples/Desugar.hs
+  examples/Examples/Automata/Compiler.hs,
+  examples/Examples/Multi/Common.hs
+  examples/Examples/Multi/Eval.hs
+  examples/Examples/Multi/EvalI.hs
+  examples/Examples/Multi/EvalM.hs
+  examples/Examples/Multi/Desugar.hs
+  examples/Examples/Param/Lambda.hs
+  examples/Examples/Param/Names.hs
+  examples/Examples/Param/Graph.hs
+  examples/Examples/MultiParam/Lambda.hs
+  examples/Examples/MultiParam/FOL.hs
+
+library
+  Exposed-Modules:      Data.Comp,
+                        Data.Comp.Annotation,
+                        Data.Comp.Sum,
+                        Data.Comp.Term,
+                        Data.Comp.Algebra,
+                        Data.Comp.Equality,
+                        Data.Comp.Ordering,
+                        Data.Comp.DeepSeq,
+                        Data.Comp.Generic
+                        Data.Comp.TermRewriting,
+                        Data.Comp.Arbitrary,
+                        Data.Comp.Show,
+                        Data.Comp.Variables,
+                        Data.Comp.Decompose,
+                        Data.Comp.Unification,
+                        Data.Comp.Derive,
+                        Data.Comp.Matching,
+                        Data.Comp.Desugar,
+                        Data.Comp.Automata,
+                        Data.Comp.MacroAutomata,
+                        Data.Comp.Automata.Product,
+                        Data.Comp.Number,
+                        Data.Comp.Thunk,
+                        Data.Comp.Ops,
+
+                        Data.Comp.Multi,
+                        Data.Comp.Multi.Term,
+                        Data.Comp.Multi.Sum,
+                        Data.Comp.Multi.HFunctor,
+                        Data.Comp.Multi.HFoldable,
+                        Data.Comp.Multi.HTraversable,
+                        Data.Comp.Multi.Algebra,
+                        Data.Comp.Multi.Annotation,
+                        Data.Comp.Multi.Show,
+                        Data.Comp.Multi.Equality,
+                        Data.Comp.Multi.Ordering,
+                        Data.Comp.Multi.Variables,
+                        Data.Comp.Multi.Ops,
+                        Data.Comp.Multi.Number,
+                        Data.Comp.Multi.Derive
+                        Data.Comp.Multi.Generic,
+                        Data.Comp.Multi.Desugar,
+
+                        Data.Comp.Param,
+                        Data.Comp.Param.Term,
+                        Data.Comp.Param.FreshM,
+                        Data.Comp.Param.Sum,
+                        Data.Comp.Param.Difunctor,
+                        Data.Comp.Param.Ditraversable,
+                        Data.Comp.Param.Algebra,
+                        Data.Comp.Param.Annotation,
+                        Data.Comp.Param.Ops
+                        Data.Comp.Param.Equality
+                        Data.Comp.Param.Ordering
+                        Data.Comp.Param.Show
+                        Data.Comp.Param.Derive,
+                        Data.Comp.Param.Desugar
+                        Data.Comp.Param.Thunk
+
+                        Data.Comp.MultiParam,
+                        Data.Comp.MultiParam.Term,
+                        Data.Comp.MultiParam.FreshM,
+                        Data.Comp.MultiParam.Sum,
+                        Data.Comp.MultiParam.HDifunctor,
+                        Data.Comp.MultiParam.HDitraversable,
+                        Data.Comp.MultiParam.Algebra,
+                        Data.Comp.MultiParam.Annotation,
+                        Data.Comp.MultiParam.Ops
+                        Data.Comp.MultiParam.Equality
+                        Data.Comp.MultiParam.Ordering
+                        Data.Comp.MultiParam.Show
+                        Data.Comp.MultiParam.Derive,
+                        Data.Comp.MultiParam.Desugar
+
+  Other-Modules:        Data.Comp.Derive.Utils,
+                        Data.Comp.Derive.Equality,
+                        Data.Comp.Derive.Ordering,
+                        Data.Comp.Derive.Arbitrary,
+                        Data.Comp.Derive.Show,
+                        Data.Comp.Derive.DeepSeq,
+                        Data.Comp.Derive.SmartConstructors,
+                        Data.Comp.Derive.SmartAConstructors,
+                        Data.Comp.Derive.Foldable,
+                        Data.Comp.Derive.Traversable,
+                        Data.Comp.Derive.Injections,
+                        Data.Comp.Derive.Projections,
+                        Data.Comp.Derive.HaskellStrict,
+                        Data.Comp.Automata.Product.Derive,
+
+                        Data.Comp.Multi.Derive.HFunctor,
+                        Data.Comp.Multi.Derive.HFoldable,
+                        Data.Comp.Multi.Derive.HTraversable,
+                        Data.Comp.Multi.Derive.Equality,
+                        Data.Comp.Multi.Derive.Ordering,
+                        Data.Comp.Multi.Derive.Show,
+                        Data.Comp.Multi.Derive.SmartConstructors
+                        Data.Comp.Multi.Derive.SmartAConstructors
+                        Data.Comp.Multi.Derive.Injections,
+                        Data.Comp.Multi.Derive.Projections,
+
+                        Data.Comp.Param.Derive.Difunctor,
+                        Data.Comp.Param.Derive.Ditraversable,
+                        Data.Comp.Param.Derive.Equality,
+                        Data.Comp.Param.Derive.Ordering,
+                        Data.Comp.Param.Derive.Show,
+                        Data.Comp.Param.Derive.SmartConstructors,
+                        Data.Comp.Param.Derive.SmartAConstructors,
+                        Data.Comp.Param.Derive.Injections,
+                        Data.Comp.Param.Derive.Projections,
+
+                        Data.Comp.MultiParam.Derive.HDifunctor,
+                        Data.Comp.MultiParam.Derive.Equality,
+                        Data.Comp.MultiParam.Derive.Ordering,
+                        Data.Comp.MultiParam.Derive.Show,
+                        Data.Comp.MultiParam.Derive.SmartConstructors,
+                        Data.Comp.MultiParam.Derive.SmartAConstructors,
+                        Data.Comp.MultiParam.Derive.Injections,
+                        Data.Comp.MultiParam.Derive.Projections
+
+  Build-Depends:	base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, th-expand-syns, transformers
+  hs-source-dirs:	src
+  ghc-options:          -W
+
+
+Test-Suite test
+  Type:                 exitcode-stdio-1.0
+  Main-is:		Data_Test.hs
+  hs-source-dirs:	src testsuite/tests examples
+  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, HUnit, test-framework, test-framework-hunit, test-framework-quickcheck2, derive, th-expand-syns, deepseq, transformers
+
+Benchmark algebra
+  Type:                 exitcode-stdio-1.0
+  Main-is:		Benchmark.hs
+  hs-source-dirs:	src benchmark
+  ghc-options:          -W -O2
+  -- Disable short-cut fusion rules in order to compare optimised and unoptimised code.
+  cpp-options:          -DNO_RULES
+  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, criterion, random, uniplate, th-expand-syns, transformers
+
+Benchmark macro
+  Type:                 exitcode-stdio-1.0
+  Main-is:		Benchmark.hs
+  hs-source-dirs:	src benchmark-macro
+  ghc-options:          -W -O2
+  -- Disable short-cut fusion rules in order to compare optimised and unoptimised code.
+  cpp-options:          -DNO_RULES
+  Build-Depends:        base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive, deepseq, criterion, random, uniplate, th-expand-syns, transformers
+
+
+source-repository head
+  type:     git
+  location: https://github.com/pa-ba/compdata