<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jul 27, 2017 at 6:45 PM, David Feuer <span dir="ltr"><<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">One might legitimately complain that such a wild type is ad hoc, but<br>
one might counter that complaint by saying that most of Foldable is<br>
already ad hoc.</blockquote><div> </div><div>My feelings largely echo Eric's in this regard.</div><div><br></div><div>Ultimately, the difference is that the rest of Foldable exists in a form that can be standardized as part of Haskell' without requiring us to be able to describe how type families, equality constraints, constraint kinds, and default signatures work and also standardize them. The last one of which being something that I'd say we really don't want in the language standard as it causes all sorts of contortions about where you put code by virtue of information flowing the wrong way, and all of which are highly ghc specific. </div><div><br></div><div>Moreover, it interacts with non-trivial awkwardness with many of the more complicated existing Foldable instances, e.g. Product, Sum, or really, almost anybody else's Foldable instance that glues together more than one 'f' pretty much then has to override this member.</div><div><br></div><div>I'm pretty strongly -1 on changing `elem` in this manner.</div><div><br></div><div>-Edward</div></div></div></div>