<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>I find it quite elegant! The fact that you can define the IO
      monad in Haskell was quite a revelation. And it's especially nice
      when paired with a demonstration of C FFI (where you might *need*
      to sequence side effects such as freeing a value after it has been
      read).<br>
    </p>
    <pre><span></span><a name="line-175"></a><span class="hs-keyword">newtype</span><span> </span><a name="IO"></a><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#IO"><span class="hs-identifier">IO</span></a><span> </span><a name="local-6989586621679009802"></a><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#local-6989586621679009802"><span class="hs-identifier">a</span></a><span> </span><span class="hs-glyph">=</span><span> </span><a name="IO"></a><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#IO"><span class="hs-identifier">IO</span></a><span> </span><span class="hs-special">(</span><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#State%23"><span class="hs-identifier hs-type">State#</span></a><span> </span><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#RealWorld" class=""><span class="hs-identifier hs-type">RealWorld</span></a><span> </span><span class="hs-glyph">-></span><span> </span><span class="hs-special">(#</span><span> </span><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#State%23"><span class="hs-identifier hs-type">State#</span></a><span> </span><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#RealWorld" class=""><span class="hs-identifier hs-type">RealWorld</span></a><span class="hs-special">,</span><span> </span><a href="http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#local-6989586621679009802"><span class="hs-identifier hs-type">a</span></a><span> </span><span class="hs-special">#)</span><span class="hs-special">)</span><span></span></pre>
    <br>
    <div class="moz-cite-prefix">On 07/11/2018 09:14 AM, Stefan Monnier
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:jwv36wp986d.fsf-monnier+gmane.comp.lang.haskell.cafe@gnu.org">
      <blockquote type="cite">
        <pre wrap="">In a few weeks I'm giving a talk to a bunch of genomics folk at the Sanger
Institute<a class="moz-txt-link-rfc2396E" href="https://www.sanger.ac.uk/"><https://www.sanger.ac.uk/></a> about Haskell.   They do lots of
programming, but they aren't computer scientists.
I can tell them plenty about Haskell, but I'm ill-equipped to answer the
main question in their minds: why should I even care about Haskell?  I'm too
much of a biased witness.
</pre>
      </blockquote>
      <pre wrap="">
I don't much like the monad solution for side-effects, but if those guys
might have some knowledge of the horror of concurrent programming with
locks, the STM system would be a good candidate.


        Stefan

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
Only members subscribed via the mailman list are allowed to post.</pre>
    </blockquote>
    <br>
    <div class="moz-signature">-- <br>
      <br>
      <br>
      <br>
      <strong
        style="color:#000;font-family:Helvetica,Arial;font-size:116%;">Vanessa
        McHale</strong><br>
      <span
        style="color:#000;font-family:Helvetica,Arial;font-size:100%;"><span
          style="color:#f00">Functional Compiler Engineer |</span>
        Chicago, IL</span>
      <br>
      <br>
      <span
        style="color:#999;font-family:Helvetica,Arial;font-size:85%;">Website:
        <a href="http://iohk.io" style="color:#f00;">www.iohk.io</a></span><br>
      <span
        style="color:#999;font-family:Helvetica,Arial;font-size:85%;">Twitter:
        @vamchale</span><br>
      <span
        style="color:#999;font-family:Helvetica,Arial;font-size:85%;">PGP
        Key ID: 4209B7B5</span><br>
      <br>
      <a href="http://iohk.io"><img
          src="https://static.iohk.io/logo/logo-email.png" alt="Input
          Output" height="46" width="200"></a>
      <br>
      <br>
      <a href="https://twitter.com/InputOutputHK"><img
          src="https://static.iohk.io/images/ic-tw.png" alt="Twitter"
          height="16" width="18"></a>
      <a href="https://github.com/input-output-hk"><img
          src="https://static.iohk.io/images/ic-gh.png" alt="Github"
          height="16" width="21"></a>
      <a href="https://www.linkedin.com/company/input-output-global"><img
          src="https://static.iohk.io/images/ic-li.png" alt="LinkedIn"
          height="16" width="19"></a>
      <br>
      <br>
      <br>
      <span
        style="color:#444;font-family:Helvetica,Arial;font-size:77%;"><small>This
          e-mail and any file transmitted with it are confidential and
          intended solely for the use of the recipient(s) to whom it is
          addressed. Dissemination, distribution, and/or copying of the
          transmission by anyone other than the intended recipient(s) is
          prohibited. If you have received this transmission in error
          please notify IOHK immediately and delete it from your system.
          E-mail transmissions cannot be guaranteed to be secure or
          error free. We do not accept liability for any loss, damage,
          or error arising from this transmission</small></span></div>
  </body>
</html>