<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">I also do not see why (a,a) could not be a container of exactly two elements, as opposed to current GHC which insists it is a container of exactly one element.  (Case for the mental institution, I'd say.)<br></blockquote><div><br></div><div>Because this isn't how types in Haskell works. `Foo a a` always parsed to `(Foo a) a` and no instance of any class can implement it differently than `(Foo b) a`, unless you want to throw parametricity out of the window. This has been long before `Foldable`.</div><div><br></div><div>Best regards,</div><div>Marcin Mrotek </div></div><br></div></div>