name: emgm version: 0.4 synopsis: Extensible and Modular Generics for the Masses homepage: http://www.cs.uu.nl/wiki/GenericProgramming/EMGM description: EMGM is a general-purpose library for datatype-generic programming. . The design is based on the idea of modeling algebraic datatypes as sum-of-product structures. Many datatypes can be modeled this way, and because they all share a common structure, we can write generic functions that work on this structure. . The primary features of the library are: . * /A foundation for building generic functions./ EMGM includes a collection of datatypes (e.g. sum, product, and unit) and type classes (e.g. @Generic@ and @Rep@). Everything you need for defining generic functions and supporting datatypes can be found here. . * /Many useful generic functions./ These provide a wide range of functionality. For example, there is @crush@, a generalization of the foldl/foldr functions, that allows you to flexibly extract the elements of a polymorphic container. Now, you can do many of the operations with your container that were previously only available for lists. . * /Support for standard datatypes./ EMGM supports standard types: primitives (e.g. @Int@ and @Float@), @Bool@, lists, tuples, @Maybe@, etc. . /NOTE:/ As of version 0.4, this library does not have Template Haskell for generating the representation. We are working on another library for a solution to this problem. category: Generics copyright: (c) 2008 - 2011 Universiteit Utrecht license: BSD3 license-file: LICENSE author: Sean Leather, José Pedro Magalhães, Alexey Rodriguez, Andres Löh maintainer: generics@haskell.org stability: experimental extra-source-files: README.md, CREDITS.md, examples/Ex00StartHere.hs, examples/Ex01UsingFunctions.hs, examples/Ex02AddingDatatypeSupport.hs, examples/Ex03DefiningFunctions.hs, tests/A.hs, tests/B.hs, tests/Base.hs, tests/Bimap.hs, tests/Collect.hs, tests/Compare.hs, tests/Crush.hs, tests/Enum.hs, tests/Everywhere.hs, tests/Main.hs, tests/Map.hs, tests/ReadShow.hs, tests/UnzipWith.hs, tests/ZipWith.hs, util/hpc.lhs extra-tmp-files: .hpc build-type: Simple cabal-version: >= 1.9.2 tested-with: GHC == 7.0.1 Source-Repository head type: git location: git://github.com/spl/emgm.git -------------------------------------------------------------------------------- Library hs-source-dirs: src exposed-modules: Generics.EMGM -- Foundation Generics.EMGM.Representation Generics.EMGM.Base -- Generic functions Generics.EMGM.Functions.Collect Generics.EMGM.Functions.Compare Generics.EMGM.Functions.Crush Generics.EMGM.Functions.Enum Generics.EMGM.Functions.Everywhere Generics.EMGM.Functions.Map Generics.EMGM.Functions.Meta Generics.EMGM.Functions.Read Generics.EMGM.Functions.Show Generics.EMGM.Functions.Transpose Generics.EMGM.Functions.UnzipWith Generics.EMGM.Functions.ZipWith -- Supported datatypes Generics.EMGM.Data.Bool Generics.EMGM.Data.Either Generics.EMGM.Data.List Generics.EMGM.Data.Maybe Generics.EMGM.Data.Ratio Generics.EMGM.Data.Tuple build-depends: base >= 3.0 && < 5.0 ghc-options: -Wall ghc-options: -O2 -------------------------------------------------------------------------------- Test-Suite test type: exitcode-stdio-1.0 hs-source-dirs: tests, src, examples main-is: Main.hs build-depends: base >= 3.0 && < 5.0, HUnit >= 1.2 && < 1.3, syb >= 0.3 && < 0.4, QuickCheck >= 2.4 && < 2.5