mzero/plush — pull request #21 by mzero (2012-11-27 06:09:46+00:00)
Title: revamp PosixLike's exception handling

create new exception transformer/mtl code in Control.Monad.Exception
based on Control.Exception
has both MonadException typeclass, and ExceptionT transformer
added new catchAll and catchIOError convience versions of catch
may still be to general in some places, but now easier to find
added catchIf function
which is more handy in some cases than catchJust
repalced throwIO with more general throwM

remove package dependency on mtl - it just got in the way
replace MonadError IOError from constraints for PosixLike
with new MonadException
base TestExec on ExceptionT rather than ErrorT
ShellExec gets it all for free

migrate all code to this new system
used new bracket function in a few places