<div dir="ltr"><div>Hi libraries@,</div><div><br></div>I'm also -1 on these instances. I'd prefer to see that the various tuples have instances that don't privilege one type variable over another. I find the existing instances for 2-tuples are already more likely to be used in error than intentionally, and even when used intentionally turn heads with their surprising behavior. I'd prefer to have Writer from transformers used, for example, when the non-symmetric treatment of the type parameters is intended.<div><br></div><div>Best regards,</div><div>Eric Mertens</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 1, 2019 at 9:29 PM Fumiaki Kinoshita <<a href="mailto:fumiexcel@gmail.com">fumiexcel@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">I submitted <a href="https://gitlab.haskell.org/ghc/ghc/merge_requests/644" target="_blank">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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Foldable</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Foldable</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Traversable</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">)</span></code><br></span></code></span></code></span></code></span></code></span></code></span></code></span></code></div><div><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Traversable</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Functor</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p">(</span><span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">)</span> <span class="gmail-m_-6804735187369636405gmail-o">=></span> <span class="gmail-m_-6804735187369636405gmail-kt">Applicative</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p">(</span><span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">)</span> <span class="gmail-m_-6804735187369636405gmail-o">=></span> <span class="gmail-m_-6804735187369636405gmail-kt">Monad</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-kt">Functor</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p">(</span><span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-p">)</span> <span class="gmail-m_-6804735187369636405gmail-o">=></span> <span class="gmail-m_-6804735187369636405gmail-kt">Applicative</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p">(</span><span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span><span class="gmail-m_-6804735187369636405gmail-p">,</span> <span class="gmail-m_-6804735187369636405gmail-kt">Monoid</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-p">)</span> <span class="gmail-m_-6804735187369636405gmail-o">=></span> <span class="gmail-m_-6804735187369636405gmail-kt">Monad</span> <span class="gmail-m_-6804735187369636405gmail-p">((,,,)</span> <span class="gmail-m_-6804735187369636405gmail-n">a</span> <span class="gmail-m_-6804735187369636405gmail-n">b</span> <span class="gmail-m_-6804735187369636405gmail-n">c</span><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-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="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-p"><code><span class="gmail-m_-6804735187369636405gmail-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">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Eric Mertens</div>