packages feed

monoids-0.1.36: monoids.cabal

name:		    monoids
version:	    0.1.36
license:	    BSD3
license-file:   LICENSE
author:		    Edward A. Kmett
maintainer:	    Edward A. Kmett <ekmett@gmail.com>
stability:	    experimental
homepage:	    http://comonad.com/reader
category:	    Data, Math, Numerical, Natural Language Processing, Parsing
synopsis:	    Monoids, specialized containers and a general map/reduce framework
description:    Monoids, specialized containers and a general map/reduce framework
copyright:      (c) 2009 Edward A. Kmett
build-type:     Simple
cabal-version:  >=1.2.3

-- packages we can extend with new instances
flag bytestring
  description: Data.ByteString is available (bytestring)

flag fingertree
  description: Data.Fingertree is available (fingertree)

flag parallel
  description: Control.Parallel.Strategies is available (parallel)
  
flag stm
  description: Control.Concurrent.STM is available (stm)

flag QuickCheck
  description: Test.QuickCheck is available (QuickCheck)
 
flag text
  description: Data.Text is available (text)

flag reflection
  description: Data.Reflection is available (reflection)

flag parsec
  description: Text.Parsec is available (parsec >= 3)

flag mtl
  description: Control.Monad.* is available (mtl)

-- optional extensions
flag overloaded-strings
  description: OverloadedStrings extension is available (extension)

-- compilation options
flag optimize
  description: Enable optimizations 
  default: False

library
  build-depends: 
    base >= 4 && < 4.2, 
    category-extras >= 0.53 && < 0.60,
    array >= 0.2 && < 0.3,
    containers >= 0.2 && < 0.3

  extensions:
    CPP

  exposed-modules:
    Data.Generator
    Data.Generator.Combinators
    Data.Generator.Compressive.LZ78
    Data.Generator.Compressive.RLE
    Data.Generator.Free
    Data.Group
    Data.Group.Combinators
    Data.Group.Sugar
    Data.Monoid.Additive
    Data.Monoid.Applicative
    Data.Monoid.Categorical
    Data.Monoid.Combinators
    Data.Monoid.Instances
    Data.Monoid.Lexical.SourcePosition
    Data.Monoid.Lexical.UTF8.Decoder
    Data.Monoid.Lexical.Words
    Data.Monoid.Monad
    Data.Monoid.Multiplicative
    Data.Monoid.Ord
    Data.Monoid.Reducer
    Data.Monoid.Reducer.Char
    Data.Monoid.Reducer.With
    Data.Monoid.Self
    Data.Monoid.Sugar
    Data.Monoid.Union
    Data.Ring
    Data.Ring.Boolean
    Data.Ring.FromNum
    Data.Ring.Module
    Data.Ring.Module.AutomaticDifferentiation
    Data.Ring.Semi.BitSet
    Data.Ring.Semi.Kleene
    Data.Ring.Semi.Near.Trie
    Data.Ring.Semi.Natural
    Data.Ring.Semi.Ord
    Data.Ring.Semi.Tropical

  if flag (bytestring)
    build-depends: bytestring >= 0.9 && < 1.0 
    cpp-options: -DM_BYTESTRING=1

  if flag (fingertree)
    build-depends: fingertree >= 0.0 && < 0.1
    cpp-options: -DM_FINGERTREE=1

  if flag (parallel)
    build-depends: parallel >= 1.1 && < 1.2
    cpp-options: -DM_PARALLEL=1

  if flag (text)
    build-depends: text >= 0.1 && < 0.2
    cpp-options: -DM_TEXT=1

  if flag (stm)
    build-depends: stm >= 2.1 && < 2.2
    cpp-options: -DM_STM=1

  if flag (QuickCheck)
    build-depends: QuickCheck >= 2.1 && < 2.2
    cpp-options: -DM_QUICKCHECK=1

  if flag (reflection)
    build-depends: reflection >= 0.1 && < 0.2
    cpp-options: -DM_REFLECTION=1
    exposed-modules: Data.Ring.ModularArithmetic

  if flag (parsec)
    build-depends: parsec >= 3.0 && < 3.1
    cpp-options: -DM_PARSEC=3

  if flag (overloaded-strings)
    extensions: OverloadedStrings
    cpp-options: -DX_OverloadedStrings=1
    exposed-modules: Data.Monoid.FromString

  if flag (mtl) 
    build-depends: mtl >= 1.0 && < 1.2 
    cpp-options: -DM_MTL=1
    
  ghc-options: -Wall -fno-warn-duplicate-exports
  cpp-options -DM_ARRAY=1 -DM_CONTAINERS=1

  if flag (optimize)
    ghc-options: -funbox-strict-fields -O2 -fdicts-cheap