<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>