作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 temporary
package与 Shake ,但这需要 Action
有一个 MonadMask
实例,而该实例缺失。为什么Shake不提供这样的实例?
最佳答案
有两个原因:
Action
基于延续 monad,并且您无法为延续 monad 实现 MonadMask
。请参阅this blog post粗略地解释为什么这是不可能的。但是,Shake 确实提供了 actionFinally
和 actionOnException
作为构建 block ,它们是 MonadMask
中可用函数的受限变体。此外,Shake 还提供了 withTempFile
和 withTempDir
,它们执行一些与 temporary
包相同的操作。最后,如果您完全处于 IO
中,那么 liftIO
和 bracket
就可以正常工作。
关于haskell - 为什么Shake不为Action提供MonadMask实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32125187/
我目前正在构建一个新的 API,它目前提供的功能之一是: inSpan :: Tracer -> Text -> IO a -> IO a 我正在寻找移动 Tracer进入一个单子(monad),给我
在上一个问题中,我问 Why is there no MonadMask instance for ExceptT? 并得到了许多令人信服的答案,包括图书馆作者,为什么不存在合法的例子。 截至 201
Edward Kmett 的异常库不提供MonadMask ExceptT 的实例. Ben Gamari once asked about this然后得出结论,文档对此进行了解释。这是我能找到的最
我是一名优秀的程序员,十分优秀!