Hackage Build Status

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on

-Edward Kmett



  • Make deriveBitraversable use liftA2 in derived implementations of bitraverse when possible, now that liftA2 is a class method of Applicative (as of GHC 8.2)
  • Backport slightly more efficient implementations of bimapDefault and bifoldMapDefault


  • Add explicit Safe, Trustworthy, and Unsafe annotations. In particular, annotate the Data.Bifoldable module as Trustworthy (previously, it was inferred to be Unsafe).


  • Only export Data.Bifoldable and Data.Bitraversable when building on GHC < 8.1, otherwise they come from base
  • Allow TH derivation of Bifunctor and Bifoldable instances for datatypes containing unboxed tuple types


  • Added bifoldr1, bifoldl1, bimsum, biasum, binull, bilength, bielem, bimaximum, biminimum, bisum, biproduct, biand, bior, bimaximumBy, biminimumBy, binotElem, and bifind to Data.Bifoldable
  • Added Bifunctor, Bifoldable, and Bitraversable instances for GHC.Generics.K1
  • TH code no longer generates superfluous mempty or pure subexpressions in derived Bifoldable or Bitraversable instances, respectively


  • Added Bifoldable and Bitraversable instances for Constant from transformers
  • Data.Bifunctor.TH now compiles warning-free on GHC 8.0


  • Added several Arrow-like instances for Tannen so we can use it as the Cayley construction if needed.
  • Added Data.Bifunctor.Sum
  • Added BifunctorFunctor, BifunctorMonad and BifunctorComonad.
  • Backported Bifunctor Constant instance from transformers


  • Added Data.Bifunctor.Fix
  • Added Data.Bifunctor.TH, which permits TemplateHaskell-based deriving of Bifunctor, Bifoldable and Bitraversable instances.
  • Simplified Bitraversable.

5 - Inverted the dependency on semigroupoids. We can support a much wider array of base versions than it can. Added flags


  • Support Arg from semigroups 0.16.2
  • Fixed a typo.


  • Bumped dependency on tagged, which is required to build cleanly on GHC 7.9+
  • Only export Data.Bifunctor when building on GHC < 7.9, otherwise it comes from base.

  • Added documentation for 'Bifoldable' and 'Bitraversable'


  • Added Data.Bifunctor.Join
  • Fixed improper lower bounds on base

  • Updated to BSD 2-clause license


  • Added product bifunctors


  • Compatibility with semigroupoids 4.0


  • Added missing product instances for Biapplicative and Biapply.


  • Added Data.Biapplicative.
  • Added the Clown and Joker bifunctors from Conor McBride's "Clowns to the left of me, Jokers to the right."
  • Added instances for Const, higher tuples
  • Added Tagged instances.


  • Added Data.Bifunctor.Flip and Data.Bifunctor.Wrapped.


  • Removed upper bounds from my other package dependencies
Used by 120 packages:
comments powered byDisqus