assoc-1.0.2: swap and assoc: Symmetric and Semigroupy Bifunctors
Safe Haskell Safe-Inferred
Language Haskell2010

Data.Bifunctor.Swap

Synopsis

Documentation

class Swap p where Source #

Symmetric Bifunctor s.

swap . swap = id

If p is a Bifunctor the following property is assumed to hold:

swap . bimap f g = bimap g f . swap

Swap isn't a subclass of Bifunctor , as for example

>>> newtype Bipredicate a b = Bipredicate (a -> b -> Bool)

is not a Bifunctor but has Swap instance

>>> instance Swap Bipredicate where swap (Bipredicate p) = Bipredicate (flip p)

Methods

swap :: p a b -> p b a Source #

Instances

Instances details
Swap Either Source #
Instance details

Defined in Data.Bifunctor.Swap

Swap (,) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (a, b) -> (b, a) Source #

Swap ( (,,) x) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (x, a, b) -> (x, b, a) Source #

Swap ( (,,,) x y) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (x, y, a, b) -> (x, y, b, a) Source #

Swap ( (,,,,) x y z) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (x, y, z, a, b) -> (x, y, z, b, a) Source #

Swap p => Swap ( Flip p) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: Flip p a b -> Flip p b a Source #

Swap ( (,,,,,) x y z w) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (x, y, z, w, a, b) -> (x, y, z, w, b, a) Source #

( Swap p, Swap q) => Swap ( Sum p q) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: Sum p q a b -> Sum p q b a Source #

( Swap p, Swap q) => Swap ( Product p q) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: Product p q a b -> Product p q b a Source #

Swap ( (,,,,,,) x y z w v) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: (x, y, z, w, v, a, b) -> (x, y, z, w, v, b, a) Source #

( Functor f, Swap p) => Swap ( Tannen f p) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: Tannen f p a b -> Tannen f p b a Source #

(f ~ g, Functor f, Swap p) => Swap ( Biff p f g) Source #
Instance details

Defined in Data.Bifunctor.Swap

Methods

swap :: Biff p f g a b -> Biff p f g b a Source #