我决定重构此代码https://github.com/kototama/screepy/blob/21b5b12bc16f9c4e5ee699ca319fd6c6466d1421/src/Screepy/Auth.hs,该代码用ExceptT
monad处理IO,Either和Maybe值。
这对我来说似乎没什么改善。我该怎么做才能改进这段代码?
一般来说,如何处理代码调用库,这些库返回不同类型的错误(Either,Maybe,Exception,Result等)。
在我的情况下,我正在处理异常(wreq),可能值(带有aeson的镜头)和Either值(aeson)!