<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    A perhaps acceptable notion of the property we want (purity etc.) is
    <br>
    that all the extensions of the purely functional core language of
    Haskell<br>
    (say the lazy lambda calculus extended with data constructors, etc)
    are <br>
    _conservative_, that is all the equations that hold<br>
    in the pure core language still hold in the extended language.<br>
    <br>
    For a part of Concurrent Haskell such a conservativity result is
    shown in<br>
    &nbsp;D.Sabel , M. Schmidt-Schau&szlig;. On conservativity of Concurrent
    Haskell. Frank report 47, 2011.<br>
    <a class="moz-txt-link-freetext" href="http://www.ki.informatik.uni-frankfurt.de/papers/frank/frank-47.pdf">http://www.ki.informatik.uni-frankfurt.de/papers/frank/frank-47.pdf</a><br>
    It also shows that with arbitrary use of unsafeInterleaveIO
    conservativity does not hold.<br>
    <br>
    And of course the result does not capture any IO-operation (only
    takeMVar, putMVar and spawning threads are considered),<br>
    but it may be extended to more operations ...<br>
    <br>
    Just my two cents,<br>
    &nbsp;David<br>
    <br>
    On 30.12.2011 02:07, Conal Elliott wrote:
    <blockquote
cite="mid:CAD6SzRLDAf3XBcwNkA6bGFq5o9xeZ6k2W9MDTCs0Rr6bUtfiaw@mail.gmail.com"
      type="cite">I wrote that post to point out the fuzziness that
      fuels many discussion threads like this one. See also <a
        moz-do-not-send="true"
        href="http://conal.net/blog/posts/notions-of-purity-in-haskell/">http://conal.net/blog/posts/notions-of-purity-in-haskell/</a>
      and the comments.<br>
      <br>
      I almost never find value in discussion about whether language X
      is "functional", "pure", or even "referentially transparent",
      mainly because those terms are used so imprecisely. In the
      notions-of-purity post, I suggest another framing, as whether or
      not a language and/or collection of data types is/are
      "denotative", to use Peter Landin's recommended replacement for
      "functional", "declarative", etc. I included some quotes and a
      link in that post. so people can track down what "denotative"
      means. In my understanding, Haskell-with-IO is not denotative,
      simply because we do not have a (precise/mathematical) model for
      IO. And this lack is by design, as explained in the "toxic
      avenger" remarks in a comment on that post.<br>
      <br>
      I often hear explanations of what IO means (world-passing etc),
      but I don't hear any consistent with Haskell's actual IO, which
      includes nondeterministic concurrency. Perhaps the difficulties
      could be addressed, but I doubt it, and I haven't seen claims
      pursued far enough to find out.<br>
      <br>
      &nbsp; - Conal<br>
      <br>
      <div class="gmail_quote">On Thu, Dec 29, 2011 at 4:42 PM, Steve
        Horne <span dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:sh006d3592@blueyonder.co.uk">sh006d3592@blueyonder.co.uk</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div bgcolor="#FFFFFF" text="#000000">
            <div>
              <div class="h5"> On 30/12/2011 00:16, Sebastien Zany
                wrote:
                <blockquote type="cite">Steve Horne wrote:<br>
                  <div class="gmail_quote">
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000"><span>I
                          haven't seen this view explicitly articulated
                          anywhere before</span></div>
                    </blockquote>
                    <div><br>
                    </div>
                    <div>See Conal Elliott's blog post <a
                        moz-do-not-send="true"
                        href="http://conal.net/blog/posts/the-c-language-is-purely-functional"
                        target="_blank">The C language is purely
                        functional</a>.</div>
                  </div>
                </blockquote>
              </div>
            </div>
            Thanks - yes, that's basically the same point. More concise
            - so clearer, but not going into all the same issues - but
            still the same theme.<br>
            <br>
          </div>
          _______________________________________________________</blockquote>
      </div>
    </blockquote>
  </body>
</html>