<div dir="auto">I’m inclined against anything to do with higher tuples than pairs, honestly. If there’s a real demand for it at some point, we can certainly consider it, but pairs are vastly more common, and I’ve only ever wanted or seen people wanting the ‘a → (a, a)’ version in practice.<div dir="auto"><div dir="auto"><br></div><div dir="auto">Generally speaking, I see ≥3-tuples as a sign of a missing data type, and I think I’m in likeminded company here.</div><div dir="auto"><br></div><div dir="auto">If I really had my way, we’d make (,) a right-associative operator in both values and types, so (a, b, c) = (a, (b, c)), and accessor functions could work on any size of tuple.</div><div dir="auto"><br></div><div dir="auto">I would also expect these functions to be called dup, dup3, dup4, &c. by analogy with other tuple functions using that convention (e.g. zip, zip3).</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 17, 2020, 10:03 AM David Feuer <<a href="mailto:david.feuer@gmail.com">david.feuer@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="auto">Does dup come with trip, quadrup, etc.? It doesn't have to, but once you plug one hole the others nearby start to stand out.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 16, 2020, 1:58 PM Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" target="_blank" rel="noreferrer">carter.schonwald@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It was pointed out to me in a private communication that the tuple function \x->(x,x) is actually a special case of a diagonalization for biapplicative and some related structures monadicially.  Another example in the same flavor is pure impl for the applicative instance for sized lists. <div dir="auto"><br></div><div dir="auto">diag x = bipure x x <br><div dir="auto"><br></div><div dir="auto">So framed a litttle differently, there’s definitely an abstraction or common pattern lurking here. Perhaps folks can help Tease this out. One person I chatted with this morning alluded to it being relevant to computational flavors of adjunctions or some such ? It def matters in a different way when doing computation resource aware programming in a symmetric monoidal category.  </div><div dir="auto"><br></div><div dir="auto">Let’s collect some ideas and patterns and get to the bottom of this! </div></div>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" rel="noreferrer noreferrer" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></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>