
Ok, Foldable is a formal condition for Traversable, but not actually used in the implementation of Traversable Either. This still leaves room to implement Foldable for Either by instance Foldable (Either a) where foldMap _ _ = error "Folding Either? Naah, I don't think this is a good idea." On 02.03.2017 17:48, David Feuer wrote:
The problem is that we'd then lose the perfectly good Traversable instance, which would be sad.
On Mar 2, 2017 11:23 AM, "Andreas Abel"
mailto:andreas.abel@ifi.lmu.de> wrote: Today a student came to me wondering why a certain function produced a regular result, where he had expected an error. Turned out he had used `concat`, but not on a lists of lists as he had thought, but on a lists of `Either a [b]`.
With the Foldable instance for Either, which considers Either a b to be a container of 0-1 elements of b, errors are happily swallowed.
I think this instance is harmful and should be deprecated (and later removed) from base.
There are similarly pointless Foldable instances as well.
See a discussion one year ago, which was heated, but had no consequences.
https://mail.haskell.org/pipermail/libraries/2016-February/026678.html https://mail.haskell.org/pipermail/libraries/2016-February/026678.html
-- Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden
andreas.abel@gu.se mailto:andreas.abel@gu.se http://www.cse.chalmers.se/~abela/ http://www.cse.chalmers.se/~abela/ _______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Andreas Abel <>< Du bist der geliebte Mensch. Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden andreas.abel@gu.se http://www.cse.chalmers.se/~abela/