
In this conversation I didn't mean that IO is not a monad (a separate
topic), but rather that the "definition" of IO is incompatible with the
truth of IO. (It's perhaps akin to "the Ken Thompson hack"; see
http://wiki.c2.com/?TheKenThompsonHack.)
As for IO being a monad, I think the claim is not only not true but is
ill-defined and hence "not even false". For a well-defined claim/question,
one would need an agreed-upon notion of equality, since the Monad laws are
equalities.
(Of course there are *other* input-output-like types, perhaps subsets of
Haskell IO, for which we can define equality usefully, even based on a
denotation. But those types are not IO. Some related remarks at
http://conal.net/blog/posts/notions-of-purity-in-haskell#comment-442.)
-- Conal
On Wed, Jul 11, 2018 at 6:59 PM, Vanessa McHale
I'm not sure I follow. Do you mean that IO is not a monad because equivalence of values cannot be defined? Or is it something deeper? On 07/11/2018 05:19 PM, Conal Elliott wrote:
The fact that you can define the IO monad in Haskell was quite a revelation.
But it's *not* a fact. It's a lie. And one of the most devious sort, since the source code appears to agree. The purported definition couldn't possibly explain concurrency.
On Wed, Jul 11, 2018 at 7:21 AM, Vanessa McHale
wrote: 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).
newtype IO http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#... a http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#... = IO http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#... (State# http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#S... RealWorld http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#R... -> (# State# http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#S... RealWorld http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#R..., a http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#... #))
On 07/11/2018 09:14 AM, Stefan Monnier wrote:
In a few weeks I'm giving a talk to a bunch of genomics folk at the Sanger Institutehttps://www.sanger.ac.uk/ https://www.sanger.ac.uk/ 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.
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:http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
--
*Vanessa McHale* Functional Compiler Engineer | Chicago, IL
Website: www.iohk.io http://iohk.io Twitter: @vamchale PGP Key ID: 4209B7B5
[image: Input Output] http://iohk.io
[image: Twitter] https://twitter.com/InputOutputHK [image: Github] https://github.com/input-output-hk [image: LinkedIn] https://www.linkedin.com/company/input-output-global
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
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.