invertible: bidirectional arrows, bijective functions, and invariant functors

[ bsd3, composition, control, data, library ] [ Propose Tags ]

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.

Versions [faq] 0.1, 0.1.1, 0.1.2, 0.2.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5
Dependencies base (>=4.8 && <5), haskell-src-meta (>=0.6 && <0.8), HList (==0.4.*), invariant, lens (==4.*), partial-isomorphisms, semigroupoids (>=4), template-haskell (==2.*), transformers, TypeCompose (>=0.3) [details]
License BSD-3-Clause
Copyright 2016
Author Dylan Simon
Maintainer dylan@dylex.net
Category Data, Control, Composition
Source repo head: git clone https://github.com/dylex/invertible
Uploaded by DylanSimon at Tue Feb 21 19:05:25 UTC 2017
Distributions LTSHaskell:0.2.0.5, NixOS:0.2.0.5, Stackage:0.2.0.5
Downloads 2742 total (73 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2017-02-21 [all 3 reports]

Modules

  • Control
    • Invertible
      • Control.Invertible.BiArrow
      • Control.Invertible.Functor
      • Control.Invertible.MonadArrow
      • Control.Invertible.Monoidal
        • Control.Invertible.Monoidal.Free
        • Control.Invertible.Monoidal.HList
  • Data
    • Data.Invertible
      • Data.Invertible.Bijection
      • 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.HList
      • Data.Invertible.Invariant
      • Data.Invertible.Lens
      • Data.Invertible.List
      • Data.Invertible.Maybe
      • Data.Invertible.Monad
      • Data.Invertible.Monoid
      • Data.Invertible.Ord
      • Data.Invertible.PartialIsomorphism
      • Data.Invertible.Piso
      • Data.Invertible.Prelude
      • Data.Invertible.Semigroupoid
      • Data.Invertible.TH
      • Data.Invertible.Tuple
      • Data.Invertible.TypeCompose

Flags

NameDescriptionDefaultType
arrows

Support the arrows package

DisabledManual
hlist

Support the HList package

EnabledManual
invariant

Support the invariant package

EnabledManual
lens

Support the lens package

EnabledManual
partial-isomorphisms

Support the partial-isomorphisms package

EnabledManual
piso

Support the Piso package

DisabledManual
semigroupoids

Support the semigroupoids package

EnabledManual
typecompose

Support the TypeCompose package

EnabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees