@arybczak This is great! Especially if it comes with an unliftio adapter.
Re. API design, I imagine it will take me some active practice to adopt it because of all the “primed” variants of the usual interfaces. Perhaps a typeclass based interface that lets you choose strict vs non-strict variants (like mtl does) according to which module you import would also make it easier to migrate. WDYT?