[Haskell-cafe] Algebraic Effects?

Viktor Dukhovni ietf-dane at dukhovni.org
Tue Sep 18 01:15:44 UTC 2018


I picked up Haskell fairly recently, as a "better imperative programming
language" to implement highly concurrent code to survey DNSSEC and DANE
adoption on the Internet.  The results are great, I got a DNS library,
network and TLS stack that provide effortless concurrency, and a decent
interface to Postgres in the form of the Hasql package and performance
is excellent.

But I'm still a novice in functional programming, with much to learn.
So it is only this week that I've started to read about Algebraic effects,
and I curious how the Haskell community views these nowadays.

If this is a toxic topic raised by newbies who should just Google
past discussions instead, feel free to say so...

Does the below thread still sum up the situation:

  https://www.reddit.com/r/haskell/comments/3nkv2a/why_dont_we_use_effect_handlers_as_opposed_to/

I see Haskell now also has an Eff monad.  Is it widely used?  Efficient?
Are there other Haskell libraries that build on it as a foundation?

One potential advantage that comes to mind with Effects is that the
exceptions raised by a computation can enter its signature and it
becomes less likely that a library will leak unexpected exception
types from its dependencies to its callers if the expected exceptions
are explicit in the signatures and checked by the type system.

For example, a while back the Haskell Network.DNS library leaked exceptions
from a parser library that was an internal implementation detail, and my code
had rare crashes on malformed DNS packets, since I did not expect or handle
that exception.

-- 
	Viktor.



More information about the Haskell-Cafe mailing list