swap and assoc: Symmetric and Semigroupy Bifunctors

Version on this page:1.1
LTS Haskell 22.29:1.1.1
Stackage Nightly 2024-07-16:1.1.1
Latest on Hackage:1.1.1

See all snapshots assoc appears in

BSD-3-Clause licensed and maintained by Oleg Grenrus
This version can be pinned in stack with:assoc-1.1@sha256:ac83c915110288bca295386daf834936b9fd16d654bea8d8898bf091626c5c82,1579

Module documentation for 1.1

Depends on 2 packages(full list with versions):
Used by 4 packages in lts-21.7(full list with versions):

Provides generalisations of swap :: (a,b) -> (b,a) and assoc :: ((a,b),c) -> (a,(b,c)) to Bifunctors supporting similar operations (e.g. Either, These).



  • Depend on bifunctor-classes-compat only. Instances for types defined in bifunctors package are moved there. With this change assoc only depends on base and tagged.
  • Mark modules as explicitly Safe


  • Add ‘Swap’ instances for more n-tuples


  • Add Assoc Const and Tagged instances