bidirectional arrows, bijective functions, and invariant functors

Latest on Hackage:

See all snapshots invertible appears in

BSD-3-Clause licensed by Dylan Simon
Maintained by

Module documentation for

This version can be pinned in stack with:invertible-,3623
  • 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.