packages feed

Cabal revisions of compdata-0.8

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

revision 1
-Name:			compdata-Version:		0.8-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".-  .-  * 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) compositional data types are bundled-  with the package in the folder @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/*.hs-  testsuite/tests/Data/*.hs-  testsuite/tests/Data/Comp/*.hs-  testsuite/tests/Data/Comp/Multi/*.hs-  testsuite/tests/Data/Comp/Examples/*.hs-  testsuite/tests/Test/Utils.hs-  -- benchmark files-  benchmark/*.hs-  benchmark/DataTypes/*.hs-  benchmark/Functions/*.hs-  benchmark/Functions/Comp/*.hs-  benchmark/Functions/Standard/*.hs-  benchmark/Multi/DataTypes/*.hs-  benchmark/Multi/Functions/Comp/*.hs-  -- example files-  examples/Examples/*.hs-  examples/Examples/Automata/*.hs-  examples/Examples/Multi/*.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.Render-                        Data.Comp.Variables-                        Data.Comp.Decompose-                        Data.Comp.Unification-                        Data.Comp.Derive-                        Data.Comp.Derive.Utils-                        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--  Other-Modules:        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.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--  Build-Depends:	base == 4.*, template-haskell, containers, mtl, QuickCheck >= 2, derive,-                        deepseq, th-expand-syns, transformers, tree-view-  hs-source-dirs:	src-  ghc-options:          -W---Test-Suite test-  Type:                 exitcode-stdio-1.0-  Main-is:		Data_Test.hs-  hs-source-dirs:	testsuite/tests examples-  Build-Depends:        compdata, 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+Name:			compdata
+Version:		0.8
+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".
+  .
+  * 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) compositional data types are bundled
+  with the package in the folder @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/*.hs
+  testsuite/tests/Data/*.hs
+  testsuite/tests/Data/Comp/*.hs
+  testsuite/tests/Data/Comp/Multi/*.hs
+  testsuite/tests/Data/Comp/Examples/*.hs
+  testsuite/tests/Test/Utils.hs
+  -- benchmark files
+  benchmark/*.hs
+  benchmark/DataTypes/*.hs
+  benchmark/Functions/*.hs
+  benchmark/Functions/Comp/*.hs
+  benchmark/Functions/Standard/*.hs
+  benchmark/Multi/DataTypes/*.hs
+  benchmark/Multi/Functions/Comp/*.hs
+  -- example files
+  examples/Examples/*.hs
+  examples/Examples/Automata/*.hs
+  examples/Examples/Multi/*.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.Render
+                        Data.Comp.Variables
+                        Data.Comp.Decompose
+                        Data.Comp.Unification
+                        Data.Comp.Derive
+                        Data.Comp.Derive.Utils
+                        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
+
+  Other-Modules:        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.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
+
+  Build-Depends:	base >= 4.7 && < 5, template-haskell, containers, mtl, QuickCheck >= 2, derive,
+                        deepseq, th-expand-syns, transformers, tree-view
+  hs-source-dirs:	src
+  ghc-options:          -W
+
+
+Test-Suite test
+  Type:                 exitcode-stdio-1.0
+  Main-is:		Data_Test.hs
+  hs-source-dirs:	testsuite/tests examples
+  Build-Depends:        compdata, base >= 4.7 && < 5, 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.7&& < 5, 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.7 && < 5, 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