packages feed

invertible-0.1: invertible.cabal

name:                invertible
version:             0.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
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

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

flag arrows
  description: Support the arrows package
flag HList
  description: Support the HList package
flag invariant
  description: Support the invariant package
flag lens
  description: Support the lens package
flag partial-isomorphisms
  description: Support the partial-isomorphisms package
flag Piso
  description: Support the Piso package
flag semigroupoids
  description: Support the semigroupoids package
flag TypeCompose
  description: Support the TypeCompose package

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.Function
    Data.Invertible.Functor
    Data.Invertible.List
    Data.Invertible.Maybe
    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

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

  if flag(arrows)
    build-depends: arrows
  if flag(HList)
    exposed-modules: Data.Invertible.HList
    exposed-modules: Control.Invertible.Monoidal.HList
    build-depends: HList == 0.4.*
  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
    build-depends: partial-isomorphisms
  if flag(Piso)
    exposed-modules: Data.Invertible.Piso
    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