haskell
Provides functions to throw and catch exceptions. Unlike the functions from
@Control.Exception@, which work in @IO@, these work in any stack of monad
transformers (from the 'transformers' package) with @IO@ as the base monad.
You can extend this functionality to other monads, by creating an instance
of the @MonadCatchIO@ class.