[Haskell-cafe] What is your favourite Haskell "aha" moment?

David Feuer david.feuer at gmail.com
Wed Jul 11 22:41:07 UTC 2018


The purported definition also mixes very badly with strictness analysis.
For IO, m >>= f should be *lazy* in f (e.g., print 3 >> undefined should
print 3 before throwing an exception) but the purported definition would
suggest it's *strict* (print 3 >> undefined is equivalent to undefined).

On Wed, Jul 11, 2018, 6:20 PM Conal Elliott <conal at conal.net> 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 <vanessa.mchale at iohk.io>
> 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#IO> a <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#local-6989586621679009802> = IO <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#IO> (State# <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#State%23> RealWorld <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#RealWorld> -> (# State# <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#State%23> RealWorld <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Prim.html#RealWorld>, a <http://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/src/GHC.Types.html#local-6989586621679009802> #))
>>
>>
>> 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
>> Institute<https://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.
>>
>
> _______________________________________________
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180711/f2f7dd99/attachment-0001.html>


More information about the Haskell-Cafe mailing list