
On Sat, Jul 28, 2012 at 01:27:47AM +0100, Edward Kmett wrote:
The following instances are missing and have only one sensible definition. I've been bitten by their lack repeatedly and there is no place outside of base that they can live without needlessly being orphaned.
I would like to propose adding the following instances to Data.Foldable and Data.Traversable.
instance Foldable (Either e) where foldMap f (Right m) = f m foldMap _ (Left _) = mempty instance Traversable (Either e) where traverse _ (Left e) = pure (Left e) traverse f (Right x) = Right <$> f x instance Foldable ((,) e) where foldMap f (_,x) = f x instance Traversable ((,) e) where traverse f (e,x) = (,) e <$> f x
I had thought honestly thought we'd already added them long ago.
You proposed them in January 2011 and everyone agreed (after changing the pair instance to the strict versions given here) but I don't think you sent a patch to Ian. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/15196 It's certainly overdue.