emgm-0.4: emgm.cabal
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