从ErrorT过渡到ExceptT

Joh*_*ler 14 haskell monad-transformers

最近的cabal安装将我的变压器版本从0.3.0.0升级到0.4.1.0.通过此升级,出现了有关ErrorT的折旧警告.

文档不清楚这只是重命名还是功能上有变化?为什么要做出这种改变?

J. *_*son 15

功能上有所改变.ErrorT要求e类型是Error类型类的成员- 例如,考虑其Monad实例约束.这是相当随意的,当然不需要功能ErrorT.

ExceptT 解除了这个限制.

引入重命名是为了创建更平滑的升级途径.当前使用并依赖于堆栈中Error约束的人ErrorT不应该更改代码.想要使用严格更通用ExceptT模块的人可以自由选择这样做.在某些时候,ErrorT模块可能会被删除.