Haskell 使用具有不同错误类型的Except monad

Haskell 使用具有不同错误类型的Except monad,haskell,error-handling,monad-transformers,Haskell,Error Handling,Monad Transformers,我决定重构这段处理IO的代码,或者使用ExceptTmonad重构值 以下是我的重构代码: 这对我来说似乎没有多大的改善。如何改进此代码 一般来说,如何处理返回不同类型错误(可能是异常、结果等)的代码调用库 在我的例子中,我处理的是异常(wreq),可能是值(lens with aeson)和任意一个值(aeson)

我决定重构这段处理IO的代码,或者使用
ExceptT
monad重构值

以下是我的重构代码:

这对我来说似乎没有多大的改善。如何改进此代码

一般来说,如何处理返回不同类型错误(可能是异常、结果等)的代码调用库

在我的例子中,我处理的是异常(wreq),可能是值(lens with aeson)和任意一个值(aeson)