[Haskell-cafe] Generalized monadic exception handling with monad-peel