haskell - 将 forkIO 推广到 MonadIO
问题描述
有什么方法可以让forkIO
优雅吗?
import Control.Monad.IO.Class (MonadIO)
import Control.Concurrent (ThreadId)
-- | Is this possible?
forkIO :: MonadIO m => m () -> m ThreadId
forkIO = undefined
我正在尝试使用一些mtl
monad 类约束从函数中调用它。我知道,lifted-base
但我不想MonadBaseControl IO
在我的程序中出现额外的约束。解决方案和/或建议将不胜感激。
解决方案
不能用 来完成MonadIO
,但可以用 来完成MonadUnliftIO
,见这里。
并非所有具有MonadIO
实例的东西也都有MonadUnliftIO
实例,但根据您的需要,这可能就足够了。
推荐阅读
- java - Twitter oauth with volley
- reactjs - Netlify Lambda GraphQL importModuleError
- typescript - 打字稿界面扁平化
- r - Excel 另存为 CSV:R 中的哪一个
- web-api-testing - 停止授权标头记录
- python - 如何在 python 中使用 Pil 库导入图像?
- node.js - sequelize postgress bulk insert 如果存在则忽略
- cypress - 如何在 cypress 中制作变量 globle,我们可以在规范文件中的所有 TestCase 中使用它
- batch-file - 要求用户输入时语法不正确
- twitter-bootstrap - 使单选按钮组全宽 BootstrapVue