packages feed

semigroups-0.17: semigroups.cabal

name:          semigroups
category:      Algebra, Data, Data Structures, Math
version:       0.17
license:       BSD3
cabal-version: >= 1.10
license-file:  LICENSE
author:        Edward A. Kmett
maintainer:    Edward A. Kmett <ekmett@gmail.com>
stability:     provisional
homepage:      http://github.com/ekmett/semigroups/
bug-reports:   http://github.com/ekmett/semigroups/issues
copyright:     Copyright (C) 2011-2015 Edward A. Kmett
synopsis:      Anything that associates
description:
    In mathematics, a semigroup is an algebraic structure consisting of a set together with an associative binary operation. A semigroup generalizes a monoid in that there might not exist an identity element. It also (originally) generalized a group (a monoid with all inverses) to a type where every element did not have to have an inverse, thus the name semigroup.
build-type:    Simple
extra-source-files: .travis.yml README.markdown CHANGELOG.markdown

source-repository head
  type: git
  location: git://github.com/ekmett/semigroups.git

flag hashable
  description:
    You can disable the use of the `hashable` package using `-f-hashable`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
    .
    If disabled we will not supply instances of `Hashable`
    .
    Note: `-f-hashable` implies `-f-unordered-containers`, as we are necessarily not able to supply those instances as well.
  default: True
  manual: True

flag bytestring
  description:
    You can disable the use of the `bytestring` package using `-f-bytestring`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag containers
  description:
    You can disable the use of the `containers` package using `-f-containers`.
    .
    Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag deepseq
  description:
    You can disable the use of the `deepseq` package using `-f-deepseq`.
    .
    Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag tagged
  description:
    You can disable the use of the `tagged` package using `-f-tagged`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag text
  description:
    You can disable the use of the `text` package using `-f-text`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

flag unordered-containers
  description:
    You can disable the use of the `unordered-containers` package using `-f-unordered-containers`.
    .
    Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.
  default: True
  manual: True

library
  default-language: Haskell98
  hs-source-dirs: src
  ghc-options: -Wall

  exposed-modules:
    Data.Semigroup
    Data.List.NonEmpty

  if impl(ghc >= 7.4)
    exposed-modules:
      Data.Semigroup.Generic

  build-depends:
    base >= 2   && < 5,
    nats >= 0.1 && < 2

  if impl(ghc >= 7.4 && < 7.5)
    build-depends: ghc-prim

  if flag(bytestring)
    build-depends: bytestring >= 0.9 && < 1

  if flag(containers)
    build-depends: containers >= 0.3 && < 0.6

  if flag(deepseq)
    build-depends: deepseq >= 1.1 && < 1.5

  if flag(tagged)
    build-depends: tagged >= 0.4.4 && < 1

  if flag(text)
    build-depends: text >= 0.10 && < 2

  if flag(hashable)
    build-depends: hashable >= 1.1  && < 1.3

  if flag(hashable) && flag(unordered-containers)
    build-depends: unordered-containers >= 0.2  && < 0.3