[英]Snap, How to lift IO monade inside a SnapletISplice
我有一个IO Bool函数,它给我一些状态信息。 我想写“OK”或“KO”,具体取决于此函数返回的值到.tpl文件的拼接中。
所以我很高兴能够在SnapletISplice中提升IO monads,这样我就可以将statusSplice :: SnapletISplice App与(“splicename”,statusSplice)绑定,并计算IO monad里面的值。
我很确定SnapletISplice“是”IO monad,并且应该存在这样的提升功能。 但我无法弄清楚它是什么。
Nb:我正在使用按扣0.11。 所以删除了一些函数(如liftHandle)。
简而言之,使用代码,我想做什么:
app = ...
addSplices splices
...
splices = [("spliceName", statusSplice)]
statusSplice :: SnapletISplice App
statusSplice = do
st <- lift $ computeStatus
if st then textSplice "ok" else textSplice "ko"
SnapletISplice
一个别名HeistT
。
HeistT
实现了MonadIO
所以如果导入的话, liftIO
应该可以工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.