Well, not always. They have special support in the RTS that seems worth experimenting with. setjmp/longjmp is what I'm after.

On Feb 21, 2018 11:24 PM, "Branimir Maksimovic" <branimir.maksimovic@gmail.com> wrote:
Hm, isn't that exceptions are exceptional?


On 22.02.2018. 05:21, David Feuer wrote:
Because sometimes the sanctioned way is inefficient. throwIO always
wraps its exception argument in a SomeException constructor before
calling raiseIO# on the result. That extra baggage is likely enough to
make the implementation I'm considering too slow to bother with, so I
care right now in 2018. I'd very much prefer to get an
officially-approved way to do what I want, but barring that I'll take
one that works.

On Wed, Feb 21, 2018 at 9:33 AM, Doug McIlroy <doug@cs.dartmouth.edu> wrote:
Can I use reallyUnsafePtrEquality# reliably to identify whether a value is
a nullary constructor of a particular type?
Can this "optimization" possibly save enough time to justify
nonstandard trickery?
This kind of obscure brittle coding may have been OK 50 years
ago. But why do it now?

Doug
_______________________________________________
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.

_______________________________________________
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.