<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It may be that some of the Foldable methods for tuples happen to be useful,<br>
but this does not mean that tuples are foldable.<br></blockquote><div><br></div><div>I think that, as far as Foldable is concerned, a tuple is equivalent to Identity, so this instance is indeed useless. However, Foldable is a superclass of Traversable (and it wouldn't make much sense to make these classes unrelated, as one can always define folds with `traverse`), so I've always found it a necessary evil. Either's instance for Foldable is a little more useful, but equivalent to Maybe's, I think?</div><div><br></div><div>But there are, in general, at least two separate use cases for these instances:</div><div>a) Using Foldable methods directly on tuples or Eithers - I think it's usually pointless, as I wrote above.</div><div>b) Passing a tuple/Either/Maybe/whatever to a more complicated function that requires a Foldable constraint. This is potentially much more useful, and at least saves some wrapping/unwrapping.</div><div><br></div><div>Best regards,</div><div>Marcin Mrotek </div></div><br></div></div>