Blog post: Introducing an effect system

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 :stuck_out_tongue:

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