<div dir="ltr"><div>Ah, thanks Anton!</div>But wouldn&#39;t/couldn&#39;t things be different if tuples was written with eg<span style="font-size:13px"> ⊂⊃ instead of parentheses?</span><div>(let&#39;s ignore the practical implications (difficult to write etc) for the moment)</div><div><br></div><div>For example, here&#39;s an optional tuple whose single element is a function:</div><div><div><span style="font-size:13px">⊂Int -&gt; Int⊃? </span></div><div><br></div><div>and here is an optional function:</div><div>(Int -&gt; Int)?</div><div><br></div><div>In this thought-experiment, parentheses are _only_ used for grouping (setting priorities), and they are the only grouping which is sloppy/forgiving, so this would also be an optional tuple whose single element is a function:</div><div><br></div><div><span style="font-size:13px">((((((((⊂Int -&gt; Int⊃))))))?))</span><br></div><div><br></div><div>But this would be an optional tuple whose single element is a single element tuple whose single element is a function:</div><div><span style="font-size:13px">⊂</span><span style="font-size:13px">⊂Int -&gt; Int</span><span style="font-size:13px">⊃</span><span style="font-size:13px">⊃</span><span style="font-size:13px">? </span></div><div><br></div><div>/Jens</div><div><div><span style="font-size:13px"><br></span></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 6, 2016 at 12:23 PM, Anton Zhilin <span dir="ltr">&lt;<a href="mailto:antonyzhilin@gmail.com" target="_blank">antonyzhilin@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><span style="font-size:12.8px">&gt; Or maybe I have just forgotten the reasons for why there can be no such thing as (a nested) single element tuple (type).</span></span><div><span style="font-size:12.8px"><br></span><div class="gmail_extra"><div class="gmail_quote">In Swift, types have their own (built-in) operators: infix &#39;-&gt;&#39;, postfix &#39;?&#39;, postfix &#39;!&#39;.</div><div class="gmail_quote">Parentheses are required for grouping (setting priorities). If we allow single element tuples, ambiguities arise:</div><div class="gmail_quote"><br></div><div class="gmail_quote">(Int -&gt; Int)?  // is that an optional tuple or just optional function?</div><div class="gmail_quote"><br></div><div class="gmail_quote">By the way, in Haskell, which allows user-defined operators on types, there is no single element tuple for pretty much the same reason.</div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">bitCycle AB | Smedjegatan 12 | 742 32 Östhammar | Sweden<br><a href="http://www.bitcycle.com/" target="_blank">http://www.bitcycle.com/</a><br>Phone: +46-73-753 24 62<br>E-mail: <a href="mailto:jens@bitcycle.com" target="_blank">jens@bitcycle.com</a><br><br></div>
</div>