diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-03-01 16:35:44 +0000 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2022-03-01 16:38:22 +0000 |
commit | d7c9e5222a4863348a503d24cc31e511061d9fe5 (patch) | |
tree | f0134784ebce552a6d1fe9c253494a16cf6542fe | |
parent | d734ef8f78203b856dcfaf19eaebfed6ec623850 (diff) | |
download | haskell-wip/bitraverse.tar.gz |
base: Remove default method from bitraversablewip/bitraverse
The default instance leads to an infinite loop.
bisequenceA is defined in terms of bisquence which is defined in terms
of bitraverse.
```
bitraverse f g
= (defn of bitraverse)
bisequenceA . bimap f g
= (defn of bisequenceA)
bitraverse id id . bimap f g
= (defn of bitraverse)
...
```
Any instances defined without an explicitly implementation are currently
broken, therefore removing it will alert users to an issue in their
code.
CLC issue: https://github.com/haskell/core-libraries-committee/issues/47
Fixes #20329 #18901
-rw-r--r-- | libraries/base/Data/Bitraversable.hs | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/libraries/base/Data/Bitraversable.hs b/libraries/base/Data/Bitraversable.hs index b0278a00c5..f4e3c4297f 100644 --- a/libraries/base/Data/Bitraversable.hs +++ b/libraries/base/Data/Bitraversable.hs @@ -127,7 +127,6 @@ class (Bifunctor t, Bifoldable t) => Bitraversable t where -- -- @since 4.10.0.0 bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> t a b -> f (t c d) - bitraverse f g = bisequenceA . bimap f g -- | Alias for 'bisequence'. -- |