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