
I'm surprised that `Either` does not have a `Foldable` instance of the 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`.