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 128 packages:
accuerr, aeson-injector, amazonka-core, amazonka-test, api-builder, applicative-fail, b9, Bang, bet, bolt, bound, butcher, cabal-debian, cassava-conduit, category-extras, chevalier-common, church-pair, clash-ghc, classy-prelude, clingo, clippings, compensated, conceit, continue, couch-simple, data-filepath, descriptive, eddie, ede, either, emailaddress, eventstore, exference, foldl-transduce, folds, forest, foscam-filename, free, free-functors, gitlib-s3, git-vogue, gogol-core, graphene, hablog, hash, hashable-extras, hgeometry, hinquire, hipbot, hOpenPGP, hoq, hosc-json, hsc3-data, hsc3-lang, hw-kafka-client, hw-kafka-conduit, indexed-extras, inilist, intro, invariant, lame-tester, language-gcl, latex-function-tables, lens, linden, liquid-fixpoint, liquidhaskell, llvm-extra, markov-processes, meep, mtree, music-score, nagios-check, nagios-perfdata, nero, nested-routes, nice-html, notzero, one-liner, origami, otp-authenticator, pagerduty, papa-bifunctors-export, papa-bifunctors-implement, pipes-key-value-csv, pipes-transduce, plan-applicative, precursor, preliminaries, process-streaming, profunctors, prologue, rasa, rasa-ext-views, rebase, recursion-schemes, reflex-animation, reflex-dom, reflex-dom-contrib, representable-tries, respond, result, riak, selections, semigroupoids, separated, simple-conduit, simplex-basic, strelka, strelka-core, strict-base-types, syntax-printer, sys-process, tellbot, text-show, text-show-instances, these, thorn, threepenny-editors, tickle, tracetree, twilio, typerbole, validation, Validation, wai-hmac-auth, xml-conduit-decode, yoko
comments powered byDisqus