A monad transformer that adds exceptions to other monads.
ExceptT constructs a monad parameterized over two things:
- e - The exception type.
- m - The inner monad.
The
return function yields a computation that produces the
given value, while
>>= sequences two subcomputations,
exiting on the first exception.