File invertible.cabal of Package ghc-invertible

name:                invertible
version:             0.2.0.2
x-revision: 1
synopsis:            bidirectional arrows, bijective functions, and invariant functors
description:
  Representations and operations for bidirectional arrows (total isomorphisms: an
  arrow paired with its inverse).  Classes for invariant functors and monoidal
  functors.  Includes a number of useful bijections and operations, as well as
  interoperability with related packages.
  .
  Most users will want to import one or more of "Data.Invertible" qualified, "Control.Invertible.Monoidal" unqualified, and any additional compatibility modules.
license:             BSD3
license-file:        LICENSE
author:              Dylan Simon
maintainer:          dylan@dylex.net
copyright:           2016
category:            Data, Control, Composition
build-type:          Simple
cabal-version:       >=1.10
tested-with:         GHC == 7.10.3, GHC == 8.0.1

source-repository head
  type: git
  location: https://github.com/dylex/invertible

flag arrows
  description: Support the arrows package
  manual: True
  default: False
flag invariant
  description: Support the invariant package
  manual: True
  default: True
flag lens
  description: Support the lens package
  manual: True
  default: True
flag partial-isomorphisms
  description: Support the partial-isomorphisms package
  manual: True
  default: True
flag Piso
  description: Support the Piso package
  manual: True
  default: False
flag semigroupoids
  description: Support the semigroupoids package
  manual: True
  default: True
flag TypeCompose
  description: Support the TypeCompose package
  manual: True
  default: True

library
  other-modules:
    Data.Invertible.Internal
  exposed-modules:
    Data.Invertible.Bijection
    Data.Invertible.TH
    Data.Invertible.Bits
    Data.Invertible.Bool
    Data.Invertible.Coerce
    Data.Invertible.Complex
    Data.Invertible.Either
    Data.Invertible.Enum
    Data.Invertible.Function
    Data.Invertible.Functor
    Data.Invertible.List
    Data.Invertible.Maybe
    Data.Invertible.Monad
    Data.Invertible.Monoid
    Data.Invertible.Ord
    Data.Invertible.Tuple
    Data.Invertible.Prelude
    Data.Invertible
    Control.Invertible.BiArrow
    Control.Invertible.MonadArrow
    Control.Invertible.Functor
    Control.Invertible.Monoidal
    Control.Invertible.Monoidal.Free

  build-depends:
    base >= 4.8 && <5,
    transformers,
    haskell-src-meta >= 0.6 && < 0.9,
    template-haskell == 2.*
  default-language:    Haskell2010
  ghc-options: -Wall

  if flag(arrows)
    build-depends: arrows
  if flag(invariant)
    exposed-modules: Data.Invertible.Invariant
    build-depends: invariant
  if flag(lens)
    exposed-modules: Data.Invertible.Lens
    build-depends: lens == 4.*
  if flag(partial-isomorphisms)
    exposed-modules: Data.Invertible.PartialIsomorphism
    if impl(ghc >= 8)
      build-depends: partial-isomorphisms > 0.2
    else
      build-depends: partial-isomorphisms
  if flag(Piso)
    exposed-modules: Data.Invertible.Piso
    if impl(ghc >= 8)
      build-depends: Piso > 0.1
    else
      build-depends: Piso
  if flag(semigroupoids)
    exposed-modules: Data.Invertible.Semigroupoid
    build-depends: semigroupoids >= 4
  if flag(TypeCompose)
    exposed-modules: Data.Invertible.TypeCompose
    build-depends: TypeCompose >= 0.3

test-suite tests
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  other-modules:
    FreeMonoidal
  default-language: Haskell2010
  ghc-options: -Wall
  build-depends:
    base,
    transformers,
    QuickCheck,
    invertible
openSUSE Build Service is sponsored by