diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-03-01 16:35:44 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-03-02 14:12:19 -0500 |
commit | 73864f006fa87fe16d4ede6363bf302d3b6cb202 (patch) | |
tree | f9858b237f93bc00d2b427b6ecaa15758f85c7f7 | |
parent | 91a10cb06aa9ace905adeff3cc795de9c40f64a9 (diff) | |
download | haskell-73864f006fa87fe16d4ede6363bf302d3b6cb202.tar.gz |
base: Remove default method from bitraversable
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'. -- |