The Dangerous package

Dangerous monads result in (Either Exit a, [Warning]), where
Exit can denote either ending computation early (Stop) or
the computation failing (Exit, Failure). Monads, Monad
Transformers, and helper functions are included.