来自具有 PrimMonad 约束的源的 Yesod respondSource

Yesod respondSource from source that has PrimMonad constraint

我正在使用 Yesod 开发一个网站,并尝试将文件从 zip 存档流式传输到 HTTP 响应中。

我选择了zip包,对应的函数是getEntrySource

它returns一个

ConduitT () ByteString m ()

其中m必须满足

符合这些限制的一种类型是 ResourceT IO

为了流式传输数据,Yesod 提供了 respondSource 函数,该函数采用

ConduitT () (Flush Builder) (HandlerFor site) ()

我的问题是:

HandlerFor 不是 PrimMonad 的一个实例,这看起来像是一个纯粹的疏忽。我已经 pushed a commit 解决了这个问题,一旦 CI 告诉我它是安全的,我就会发布给 Hackage。