I have a library of functions that all take cfg parameter (and usually others) and return results in the IO monad.
It is sometimes useful to drop the config parameter by using a state-like monad..
I have found that I can wrap all my functions like so:
withLibrary cfg f = f cfg
stateF a b c d =