haskell - 为什么有一个用于 exceptT 的 MonadMask 实例?
问题描述
在上一个问题中,我问
并得到了许多令人信服的答案,包括图书馆作者,为什么不存在合法的例子。
截至 2018 年 2 月,异常库现在确实有一个用于exceptT 的 MonadMask实例。
所以现在我要问完全相反的问题:为什么我上一个问题的答案不正确?
解决方案
该exceptions
库的文档在其文档中有答案:
这个方法是在这个库的 0.9.0 版本中添加的。以前,在这个模块中像
bracket
and之类的函数的实现仅finally
基于mask
anduninterruptibleMask
函数,不允许某些类的转换器具有MonadMask
实例(特别是多出口点转换器,例如ExceptT
)。如果您是库作者,您现在需要提供此方法的实现...
(注意:generalBracket
0.10 的类型已更改,请勿使用 0.9)。
推荐阅读
- r - 聚合移动方差
- c# - float.Parse 不再在 Unity (C#) 中工作
- regex - 正则表达式匹配基于唯一字符串的重复模式的紧邻左侧出现
- python - 使用 python 2.7 从关键字列表中随机重命名多个图像
- python - 如何将 WSGI 用于我的 Flask 应用程序?我的应用程序使用线程
- jquery - jQuery滚动到元素不起作用2
- asp.net - 如何在不使用完整 URL 的情况下重定向到特定页面
- flowtype - 如何指定 .flowconfig 文件位置?
- php - Laravel auth 有时会检索到错误的用户
- c++ - 从位图中检索 LPBITMAPINFOHEADER (c++)