Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
-Edward Kmett
Changes
5.5.15 [2023.02.27]
Support th-abstraction-0.5.*.
5.5.14 [2022.12.07]
Define Functor, Foldable, and Traversable instances for Sum and
Product.
5.5.13 [2022.09.12]
Make the Biapplicative instances for tuples lazy, to match their Bifunctor
instances.
5.5.12 [2022.05.07]
Backport an upstream GHC change which removes the default implementation of
bitraverse. Per the discussion in
https://github.com/haskell/core-libraries-committee/issues/47, this default
implementation was completely broken, as attempting to use it would always
result in an infinite loop.
5.5.11 [2021.04.30]
Allow building with template-haskell-2.18 (GHC 9.2).
5.5.10 [2021.01.21]
Fix a bug in which deriveBifoldable could generate code that triggers
-Wunused-matches warnings.
5.5.9 [2020.12.30]
Explicitly mark modules as Safe or Trustworthy.
5.5.8 [2020.10.01]
Fix a bug in which deriveBifunctor would fail on sufficiently complex uses
of rank-n types in constructor fields.
Fix a bug in which deriveBiunctor and related functions would needlessly
reject data types whose two last type parameters appear as oversaturated
arguments to a type family.
5.5.7 [2020.01.29]
Add Data.Bifunctor.Biap.
5.5.6 [2019.11.26]
Add Category, Arrow, ArrowChoice, ArrowLoop, ArrowZero, and
ArrowPlus instances for Data.Bifunctor.Product.
5.5.5 [2019.08.27]
Add Eq{1,2}, Ord{1,2}, Read{1,2}, and Show{1,2} instances for data
types in the Data.Bifunctor.* module namespace where possible. The
operative phrase is “where possible” since many of these instances require
the use of Eq2/Ord2/Read2/Show2, which are not avaiable when
built against transformers-0.4.*.
5.5.4 [2019.04.26]
Support th-abstraction-0.3 or later.
Don’t incur a semigroup dependency on recent GHCs.
5.5.3 [2018.07.04]
Make biliftA2 a class method of Biapplicative.
Add the traverseBia, sequenceBia, and traverseBiaWith functions for
traversing a Traversable container in a Biapplicative.
Avoid incurring some dependencies when using recent GHCs.
5.5.2 [2018.02.06]
Don’t enable Safe on GHC 7.2.
5.5.1 [2018.02.04]
Test suite fixes for GHC 8.4.
5.5 [2017.12.07]
Data.Bifunctor.TH now derives bimap/bitraverse
implementations for empty data types that are strict in the argument.
Data.Bifunctor.TH no longer derives bifoldr/bifoldMap implementations
that error on empty data types. Instead, they simply return the folded state
(for bifoldr) or mempty (for bifoldMap).
When using Data.Bifunctor.TH to derive Bifunctor or Bitraversable
instances for data types where the last two type variables are at phantom
roles, generated bimap/bitraverse implementations now use coerce for
efficiency.
Add Options to Data.Bifunctor.TH, along with variants of existing
functions that take Options as an argument. For now, the only configurable
option is whether derived instances for empty data types should use the
EmptyCase extension (this is disabled by default).
5.4.2
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
5.4.1
Add explicit Safe, Trustworthy, and Unsafe annotations. In particular, annotate the Data.Bifoldable module as Trustworthy (previously, it was inferred to be Unsafe).
5.4
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