bidirectional arrows, bijective functions, and invariant functors

Version on this page:
LTS Haskell 19.18:
Stackage Nightly 2022-03-17:
Latest on Hackage:

See all snapshots invertible appears in

BSD-3-Clause licensed by Dylan Simon
Maintained by
This version can be pinned in stack with:invertible-,3623

Module documentation for

  • Control
    • Control.Invertible
      • Control.Invertible.BiArrow
      • Control.Invertible.Functor
      • Control.Invertible.MonadArrow
      • Control.Invertible.Monoidal
        • Control.Invertible.Monoidal.Free
  • 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.List
      • Data.Invertible.Maybe
      • Data.Invertible.Monad
      • Data.Invertible.Monoid
      • Data.Invertible.Ord
      • Data.Invertible.Prelude
      • Data.Invertible.TH
      • Data.Invertible.Tuple

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.