Generic Haskell version 1.23 (Beryl) ====================================
We are happy to announce the second release of Generic Haskell, an extension of Haskell which facilitates generic programming. Generic Haskell includes the following features: * type-indexed values -- generic functions definable for all Haskell data types. * kind-indexed types -- for giving types to type-indexed values * type-indexed types -- types which are indexed over the type constructors underlying Haskell datatypes. The Generic Haskell compiler takes Generic Haskell source and produces Haskell code (which is in most cases Haskell 98 compliant). Changes since 0.99 (Amber) -------------------------- * The syntax for using the type Con and Label in generic functions has slightly changed; old programs have to be adapted to this change. * Constructor cases allow special behaviour of generic functions on specific constructors. * Default cases allow to incrementally build generic functions by adding or modifying single cases of existing functions. * A module system that mirrors Haskell's module system. * Demand-driven specialisation mechanism that is compatible with the module system and should generate less code than the mechanism used before. Download -------- The Generic Haskell compiler is available in source and binary distributions. Binaries for Linux, Windows, MacOSX, and Solaris are available. These are available from: http://www.generic-haskell.org/compiler.html The documentation is also available separately from that page. For more general information, point your browser to: http://www.generic-haskell.org Why Generic Haskell? -------------------- Software development often consists of designing datatypes, around which functionality is added. Some functionality is datatype specific, whereas other functionality is defined on almost all datatypes in such a way that it depends only on the structure of the datatype. A function that works on many datatypes in this way is called a generic function. Examples of generic functionality include storing a value in a database, editing a value, comparing two values for equality, pretty-printing a value. Since datatypes often change and new datatypes are introduced, we have developed Generic Haskell, an extension of the functional programming language Haskell that supports generic definitions, to save the programmer from (re)writing instances of generic functions. The design of Generic Haskell is based on recent work by Ralf Hinze. Pleasant programming, The Generic Haskell Team at Utrecht University (Dave Clarke, Johan Jeuring, Andres Loeh) [EMAIL PROTECTED] _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell