
+1, I wanted this recently. Erik On Thursday, May 30, 2013, Shachaf Ben-Kiki wrote:
I'm surprised that `Either` does not have a `Foldable` instance of the
On Thu, May 30, 2013 at 12:53 PM, Gabriel Gonzalez
javascript:;> wrote: form: import Data.Foldable import Data.Monoid
instance Foldable (Either e) where foldMap f (Left _) = mempty foldMap f (Right r) = f r
foldr _ z (Left _) = z foldr f z (Right r) = f r z
In other words, the above instance would behave like the `Maybe`
`Foldable`
instance, treating `Left` in the same way as `Nothing`.
This came up in the context of an issue raised on the `errors` package:
https://github.com/Gabriel439/Haskell-Errors-Library/issues/16
I could provide an orphan instance for `Either` in the `errors` package, but I wanted to ask if it was possible to incorporate the instance directly into `Data.Foldable`.
This instance should exist. There's been a couple of discussion on libraries@ before. One of them is at http://www.haskell.org/pipermail/libraries/2012-July/018246.html.
I wrote a patch for base at one point -- < http://shachaf.net/0001-Add-Foldable-and-Traversable-instances-for-Either-e-...
-- but didn't go through the rest of the process at the time.
Right now `lens` has an orphan instance for this, by the way.
Shachaf
_______________________________________________ Libraries mailing list Libraries@haskell.org javascript:; http://www.haskell.org/mailman/listinfo/libraries