New effect system: in-other-words - Haskell

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

Love Waern (King of the Homeless)

I'm a developer of polysemy, and I've recently been working away on a new effect system to address the problems of polysemy's core abstractions. I've just released that library: in-other-words.

A higher-order effect system where the sky's the limit - KingoftheHomeless/in-other-words
Love Waern (King of the Homeless)

The main contribution of in-other-words is its new approach to higher-order effects, which lets it solve the O(n^2) instances problem without restricting what effects may be represented, unlike the mechanism underlying polysemy and fused-effects (that is, weave).

Love Waern (King of the Homeless)

The drawback with this approach is that it introduces additional complexity; effect interpreters may restrict what other effect interpreters may be used in the same program. This is unavoidable: you can't have every possible effect play nicely together with every other effect. The differences are that while polysemy and fused-effects solve that through placing uniform restrictions that every effect and effect interpreter must adhere to, in-other-words's restrictions aren't static, but are rather introduced by the interpreters you use.

Love Waern (King of the Homeless)

Despite that, I feel that the approach is a very big improvement over weave. In addition, the core idea is generalizable, so it can be adapted for use by other effect systems.