packages feed

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