Backported Control.Monad.Except module from mtl
