Difference between revisions of "Applications and libraries/Generic programming"

From HaskellWiki
Jump to navigation Jump to search
Line 31: Line 31:
   
 
==Benchmark suite==
 
==Benchmark suite==
We have developed a benchmark suite that tests the expressiveness of different generic programming libraries. To download the code do:
+
We have developed a benchmark suite that tests the expressiveness of different generic programming libraries. For more information go to: [[GPBench]].
 
> darcs get http://darcs.haskell.org/generics
 
 
And run the tests as follows:
 
 
> cd generics/comparison
 
 
> runghc test.hs --all
 
 
Have a look at the README file in that directory for information about the benchmark suite and needed dependencies.
 

Revision as of 17:11, 2 April 2008

The copyright status of this work is not known. Please help resolve this on the talk page.

Common library for generic programming

Johan Jeuring and Andres Loeh announced an initiative to design a common library for generic programming, which should work together with most of the Haskell compilers, and for which they hope to guarantee support for generics in Haskell into the future. If you want to get involved (or just want to see the discussion), you can subscribe to the generics mailing list. Check the Haskell research wiki for some background on generics.

Work Plan

We have identified a number of approaches that are potential candidates to a generic programming library:

At the moment we are discussing the advantages and disadvantages of the different approaches. Each approach is roughly two weeks under discussion and the results will be published in this Wiki Page. There is also a darcs repository where you can find some code that we are collecting. For retriving this code do:

> darcs get http://darcs.haskell.org/generics

The template that we are using to summarise the different approaches can be found here.

Alternatives

  • Uniplate, recently released by Neil Mitchell.

Benchmark suite

We have developed a benchmark suite that tests the expressiveness of different generic programming libraries. For more information go to: GPBench.