0

我有一个 IO Bool 函数,可以给我一些状态信息。我想根据此函数返回的值将“OK”或“KO”写入 .tpl 文件的拼接中。

所以我很高兴的是一种在 SnapletISplice 中提升 IO monad 的方法,这样我就可以将 statusSplice :: SnapletISplice App 与 ("splicename", statusSplice) 绑定,并从内部的 IO monad 计算值。

我很确定 SnapletISplice “是”一个 IO monad,应该存在这样的提升功能。但我无法弄清楚它是什么。

注意:我正在使用 snap 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"
4

1 回答 1

2

SnapletISplice的别名HeistT

HeistT工具MonadIO

liftIO如果它是进口的,那么应该可以工作

于 2013-06-06T12:32:04.690 回答