<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>You can use the (-> c) instance in fun ways<br>
      <br>
      both :: (a -> b) -> (a, a) -> (b, b)<br>
      both = join (***)<br>
      <br>
      dup :: a -> (a, a)<br>
      dup = join (,)<br>
      <br>
      between `join` (char '"')<br>
      <br>
    </p>
    <div class="moz-cite-prefix">On 10/13/19 11:55 PM, Dannyu NDos
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAKM3oZU93A6XBOYJiUe7iMdbsDL4HCiY6kfQEuyvuvj-rRm1MA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="auto">join is surely useful for Maybe and [].
        <div dir="auto"><br>
        </div>
        <div dir="auto">But IO (IO a)? ReadPrec (ReadPrec a)? ST s (ST s
          a)? When the heck could I encounter such types?</div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-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>
  </body>
</html>