<div dir="auto">+0.1 from me.<div dir="auto"><br></div><div dir="auto">These instances are awful but at least let's be consistent. </div><div dir="auto"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 2, 2019, 06:29 Fumiaki Kinoshita <<a href="mailto:fumiexcel@gmail.com">fumiexcel@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">I submitted <a href="https://gitlab.haskell.org/ghc/ghc/merge_requests/644" target="_blank" rel="noreferrer">https://gitlab.haskell.org/ghc/ghc/merge_requests/644</a> but it might be still controversial. I'd like to get more opinions again.<br></div><div dir="ltr"><br></div><div>Here's the list of proposed instances:</div><div><br></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Foldable</span> <span class="m_-3088532932799686296gmail-p">((,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Foldable</span> <span class="m_-3088532932799686296gmail-p">((,,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Traversable</span> <span class="m_-3088532932799686296gmail-p">((,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Traversable</span> <span class="m_-3088532932799686296gmail-p">((,,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Functor</span> <span class="m_-3088532932799686296gmail-p">((,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p">(</span><span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">a</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span> <span class="m_-3088532932799686296gmail-o">=></span> <span class="m_-3088532932799686296gmail-kt">Applicative</span> <span class="m_-3088532932799686296gmail-p">((,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p">(</span><span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">a</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span> <span class="m_-3088532932799686296gmail-o">=></span> <span class="m_-3088532932799686296gmail-kt">Monad</span> <span class="m_-3088532932799686296gmail-p">((,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-kt">Functor</span> <span class="m_-3088532932799686296gmail-p">((,,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p">(</span><span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">a</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span> <span class="m_-3088532932799686296gmail-o">=></span> <span class="m_-3088532932799686296gmail-kt">Applicative</span> <span class="m_-3088532932799686296gmail-p">((,,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p">(</span><span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">a</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">b</span><span class="m_-3088532932799686296gmail-p">,</span> <span class="m_-3088532932799686296gmail-kt">Monoid</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span> <span class="m_-3088532932799686296gmail-o">=></span> <span class="m_-3088532932799686296gmail-kt">Monad</span> <span class="m_-3088532932799686296gmail-p">((,,,)</span> <span class="m_-3088532932799686296gmail-n">a</span> <span class="m_-3088532932799686296gmail-n">b</span> <span class="m_-3088532932799686296gmail-n">c</span><span class="m_-3088532932799686296gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p"><code><span class="m_-3088532932799686296gmail-p">The absence of Traversable instances for tuples feels quite inconsistent given that there are Bitraversable instances </span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code></span></code><span style="font-family:monospace">already</span>.</div></div>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank" rel="noreferrer">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>