To implement general with{SomeResource}
functions, I know of two main ecosystems: MonadBaseControl
and UnliftIO
. (Are there others?)
What are your opinions of a library that
- Has
.UnliftIO
and.MonadBaseControl
modules, providingwith{SomeResource}
convenience functions for both ecosystems? The drawback is that the library depends on bothlifted-base
andunliftio
. - Instead of 1, it avoids those dependencies, gives users only the raw “open” and “close” functions, and tells users to roll out their own
with{SomeResource}
convenience functions by using the “brackets” of their own choice (classic IO, MonadBaseControl, or UnliftIO).