<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>But length is not a bad name. The length of ((,) a) is exactly
      one. It's because people keep calling this "the tuple instance",
      unaware that it is not the tuple instance. It is a conflation in
      vocabulary, leading to a misunderstanding of concepts and
      subsequent practical application.</p>
    <p>Jakub Daniel is exactly right, "It is categorically valid to view
      (a,-) as a functor. It is no different from 0 being an integer"</p>
    <p>Is 0 an integer? Is ((,) a) a functor? Is the length of ((,) a)
      equal to one?</p>
    <p>Whichever universe you choose to live in, these questions all
      have the same answer. I would respect the contrary position more
      if it was also argued that 0 is not an integer.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 31/03/17 07:53, Theodore Lief Gannon
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAJoPsuBSZBLEhb_po896=tYbGCJibBqJxfCt4wc1-FQ+UyAGuA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Two bits from the peanut gallery:</div>
        <div><br>
        </div>
        We have an open world of universal instances. The question is
        not whether it's convenient to have these instances. It's
        whether there's any likelihood of someone deciding to define
        them elsewhere if they're not in base. Because then they exist
        anyway, and without nearly as much discussion and refinement.
        <div><br>
        </div>
        <div>Yes, it's an unfortunate situation. Yes, "length" is a bad
          name. But the realities of the Haskell ecosystem dictate that
          when a single lawful instance of a base typeclass exists for a
          base data type, implementing it is pretty much mandatory.</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Mar 30, 2017 at 2:36 PM, Bryan
          Richter <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:b@chreekat.net" target="_blank">b@chreekat.net</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
              class="">On Thu, Mar 30, 2017 at 11:18:10PM +0200, Henning
              Thielemann wrote:<br>
              ><br>
              > On Thu, 30 Mar 2017, Bryan Richter wrote:<br>
              ><br>
              > >My intuition, based on observed usage in Haskell
              and elsewhere, is<br>
              > >that tuples are used as anonymous product types.
              Thus, I am<br>
              > >interested in the rationale for making them
              Functors because I feel<br>
              > >it has denied me a common, valuable tool. I no
              longer feel that I<br>
              > >should use pairs as product types. By making "(,)
              a" a Functor, it is<br>
              > >no longer an anonymous product type —— it is an
              anonymous Reader. Are<br>
              > >anonymous Readers really all that much more
              valuable than anonymous<br>
              > >product types? I cannot conceive it. I must be
              missing something.<br>
              ><br>
              > Pairs as functors are Writers. The function type got
              a Functor<br>
              > instance that corresponds to Readers.<br>
              <br>
            </span>Oops, laziness of the bad sort on my own part. :)<br>
            <span class=""><br>
              > I think the only reason is that some programmers got
              "laziness" wrong<br>
              > and try to use primitive types for everything instead
              of using (and<br>
              > importing) dedicated types.<br>
              <br>
            </span>Well, is there anything to be done for it at this
            point? Is there even<br>
            any consensus that this was, in retrospect, a poor choice?<br>
            <br>
            ______________________________<wbr>_________________<br>
            Libraries mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
            <a moz-do-not-send="true"
              href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries"
              rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <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>