run a list of
ProgressActions. In some monads (typically IO-based ones),
the progress and error messages will be used. In others they will be
ignored and just the actions will be run.
a monadic action, annotated with a progress message that could be printed out while running the action, and a message that could be printed out on error. Actually printing out these messages is optional to allow non-IO monads to just run the action.