<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Aren't these sorts of mistakes impossible with ML sigs and structs?<br>
<br>
<div class="moz-cite-prefix">On 02/24/2016 10:08 AM, Augustsson,
Lennart wrote:<br>
</div>
<blockquote
cite="mid:22B950C955F8AB4196E72698FBD00002D02E4EDB@UKWPIPXMB01C.zone1.scb.net"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 12 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Having
length of a tuple not be a type error is not only confusing
for beginners.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">It
can also mask bugs in real code written by experts. And
it’s already happened.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Since
length of a tuple returning 1 is nonsensical and useless, it
should simply not be legal.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""
lang="EN-US">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""
lang="EN-US"> Libraries
[<a class="moz-txt-link-freetext" href="mailto:libraries-bounces@haskell.org">mailto:libraries-bounces@haskell.org</a>]
<b>On Behalf Of </b>Nathan Bouscal<br>
<b>Sent:</b> 24 February 2016 15:56<br>
<b>To:</b> Kosyrev Serge<br>
<b>Cc:</b> Haskell Libraries<br>
<b>Subject:</b> Re: Haskell Foldable Wats<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">On Wed, Feb 24, 2016 at 3:49 PM,
Kosyrev Serge <<a moz-do-not-send="true"
href="mailto:_deepfire@feelingofgreen.ru"
target="_blank">_deepfire@feelingofgreen.ru</a>>
wrote:<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Nathan
Bouscal <<a moz-do-not-send="true"
href="mailto:nbouscal@gmail.com">nbouscal@gmail.com</a>>
writes:<br>
> Apologies for being unclear. By marginal, I meant
that I expect many<br>
> learners who end up confused by this would have
otherwise come across<br>
> the same confusion by other paths.<br>
<br>
This sounds odd to me in two ways:<br>
<br>
1. it is not "the same" confusion -- it is a worse
confusion, for<br>
several reasons:<br>
- the questionable Functor instance gives a cognitive
dissonance for<br>
not transforming the entirety of the tuple (for
good reasons, but still!)<br>
- the questionable Functor is a puzzlingly arbitrary
choice among a<br>
N-family of options that an N-tuple provides.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">As Ed pointed out, there is nothing
arbitrary about the choice. This actually makes tuples
in some sense a uniquely good way of explaining how
things work, because you can show why this restriction
exists.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC
1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-left:4.8pt">2. but
even if the confusion itself wasn't made worse -- its
impact has<br>
increased, because exposure to it has increased<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">To the extent that exposure has
increased, I would think it would be caused by
confusion of the "lists vs tuples" type, which seems
important to resolve early. That resolution doesn't
really need to say anything about how Functor works,
and can instead be more along the lines of "What
problem were you trying to solve by taking the length
of a tuple? Should you have been using a list
instead?"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC
1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:4.8pt">--<br>
с уважениeм / respectfully,<br>
Косырев Сергей<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<br clear="all">
This email and any attachments are confidential and may also be
privileged. If you are not the intended recipient, please delete
all copies and notify the sender immediately. You may wish to
refer to the incorporation details of Standard Chartered PLC,
Standard Chartered Bank and their subsidiaries at
<a class="moz-txt-link-freetext" href="http://www.standardchartered.com/en/incorporation-details.html">http://www.standardchartered.com/en/incorporation-details.html</a><br>
<br>
Insofar as this communication contains any market commentary, the
market commentary has been prepared by sales and/or trading desk
of Standard Chartered Bank or its affiliate. It is not and does
not constitute research material, independent research,
recommendation or financial advice. Any market commentary is for
information purpose only and shall not be relied for any other
purpose, and is subject to the relevant disclaimers available at
<a class="moz-txt-link-freetext" href="http://wholesalebanking.standardchartered.com/en/utility/Pages/d-mkt.aspx">http://wholesalebanking.standardchartered.com/en/utility/Pages/d-mkt.aspx</a><br>
<br>
Insofar as this e-mail contains the term sheet for a proposed
transaction, by responding affirmatively to this e-mail, you agree
that you have understood the terms and conditions in the attached
term sheet and evaluated the merits and risks of the transaction.
We may at times also request you to sign on the term sheet to
acknowledge in respect of the same.<br>
<br>
Please visit
<a class="moz-txt-link-freetext" href="http://wholesalebanking.standardchartered.com/en/capabilities/financialmarkets/Pages/doddfrankdisclosures.aspx">http://wholesalebanking.standardchartered.com/en/capabilities/financialmarkets/Pages/doddfrankdisclosures.aspx</a>
for important information with respect to derivative products.<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Libraries mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libraries@haskell.org">Libraries@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a>
</pre>
</blockquote>
<br>
</body>
</html>