[Haskell-cafe] extensible effects and open unions

Suhail Shergill suhailshergill at gmail.com
Fri Nov 28 09:52:06 UTC 2014

having recently taken over as maintainer for the extensible-effects library, i'm
looking to address some of the current implementation concerns. specifically:

1] the use/need for Typeable in Data.OpenUnion

oleg at okmij.org writes:

> I must stress that OpenUnion1.hs described (briefly) in the paper is only one
> implementation of open unions, out of many possible.  For example, I have two
> more implementations. A year-old version of the code implemented open unions
> *WITHOUT* overlapping instances or Typeable.
>         http://okmij.org/ftp/Haskell/extensible/TList.hs

how does the TList.hs implementation compare with, say, OpenUnion2.hs? neither
require OverlappingInstances, and the TList implementation also does away with
the Typeable constraint. are there reasons why it might not make sense to use
TList.hs as the only/default implementation of Data.OpenUnion?

2] scope for impredicative/first-class polymorphism

> By polymorphic effects you must mean first-class polymorphism (because the
> already implemented Reader effect is polymorphic in the environment). First of
> all, there are workarounds.

what are the "workarounds" in question? 

> Second, I'm not sure what would be a good example of polymorphic effect (aside
> from ST-monad-like).

the paper mentioned "explicitly marking state, and providing an allocation
system using monadic regions". is this related to
<http://okmij.org/ftp/Haskell/regions.html#light-weight> and if so, what work
needs to be done to apply those ideas to extensible-effects?


More information about the Haskell-Cafe mailing list