Как проверить значения внутри монады обработчика в ghci? - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть тип Handler [Maybe AvailableDay] Я хотел бы проверить содержимое [Maybe AvailableDay] в ghci.Как мне это сделать?

1 Ответ

5 голосов
/ 08 ноября 2011

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

Если вы не думаете, что значение зависит от чего-либо из этого, тогда вы сможете переписать его как чистое вычисление или как единое целое в монаде IO, которая должна быть намного проще для запуска.

...