This blog post explains the reasons we integrated an effect system for the Monocle project.
8 Likes
Thanks a lot for publicly writing about it!
Doesn’t ReaderT over IO mean you don’t have the n-squared instances problem?
@adamse Pretty sure you lose all granularity and re-interpretation of effects with ReaderT r IO a
1 Like
@adamse, what we observed is that, for example, to use Prometheus or Database.Bloodhound.Client, we had to implement MonadMonitor
and MonadBH
instances. If I understand correctly, Has*
constraints also require an instance for every r
. With effectful, we no longer have to create any instance, so that we can use new effects seamlessly.
1 Like