[Haskell-cafe] On the purity of Haskell

Heinrich Apfelmus apfelmus at quantentunnel.de
Fri Dec 30 09:52:07 CET 2011

Conal Elliott wrote:
> I wrote that post to point out the fuzziness that fuels many
> discussion threads like this one. See also 
> http://conal.net/blog/posts/notions-of-purity-in-haskell/ and the
> comments.
> 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.
> 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.

Personally, the operational semantics given in SPJ's "Tackling the 
Awkward Squad" always struck me as an accurate model of how GHC performs IO.

Best regards,
Heinrich Apfelmus


More information about the Haskell-Cafe mailing list