Exceptions provided by
base work only in IO. I know of two generalizations of these exceptions to other monads:
They seem to be doing the same thing.
MonadBaseControl is more grand. but I do not follow how that grandeur is motivated. I used each of them once or twice and I did not see any difference.
Is there a clear cut best practice for when to use one or the other?