HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduleassoc-1.1.1Haskell2010

Data.Bifunctor.Swap

  • 1 class
  • Packageassoc-1.1.1
  • Exports1
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceSwap.hs
classclass Swap (p :: Type -> Type -> Type) where
#

Symmetric Bifunctors.

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

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

is not a Bifunctor but has Swap instance

Example1 expression
instance Swap Bipredicate where swap (Bipredicate p) = Bipredicate (flip p)

Methods

  • swap :: p a b -> p b a
Instances7Swap, …
  • Swap EitherDefined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap Tuple2Defined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap (Tuple3 x)Defined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap (Tuple4 x y)Defined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap (Tuple5 x y z)Defined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap (Tuple6 x y z w)Defined in assoc-1.1.1 · Data.Bifunctor.Swap
  • Swap (Tuple7 x y z w v)Defined in assoc-1.1.1 · Data.Bifunctor.Swap