Вы не можете просто извлечь «содержимое» Handler
, так как Handler
на самом деле является вычислением, которое может зависеть от текущего запроса, состояния сеанса и так далее. Таким образом, чтобы запустить его, вы должны кормить его всем этим. Это предполагает использование runHandler
, за которым следуют unYesodApp
и run
в результате Iteratee
. Технически возможно, но невероятно грязно делать самостоятельно.
Если вы не думаете, что значение зависит от чего-либо из этого, тогда вы сможете переписать его как чистое вычисление или как единое целое в монаде IO
, которая должна быть намного проще для запуска.