I wrote that post to point out the fuzziness that fuels many discussion threads like this one. See also <a 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 &quot;functional&quot;, &quot;pure&quot;, or even &quot;referentially transparent&quot;, 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 &quot;denotative&quot;, to use Peter Landin&#39;s recommended replacement for &quot;functional&quot;, &quot;declarative&quot;, etc. I included some quotes and a link in that post. so people can track down what &quot;denotative&quot; 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 &quot;toxic avenger&quot; remarks in a comment on that post.<br>

<br>I often hear explanations of what IO means (world-passing etc), but I don&#39;t hear any consistent with Haskell&#39;s actual IO, which includes nondeterministic concurrency. Perhaps the difficulties could be addressed, but I doubt it, and I haven&#39;t seen claims pursued far enough to find out.<br>

<br>  - Conal<br><br><div class="gmail_quote">On Thu, Dec 29, 2011 at 4:42 PM, Steve Horne <span dir="ltr">&lt;<a 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&#39;t
              seen this view explicitly articulated anywhere before</span></div>
        </blockquote>
        <div><br>
        </div>
        <div>See Conal Elliott&#39;s blog post <a 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&#39;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>

<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>