Как проверить значения внутри монады Handler в ghci?

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


person Michael Litchard    schedule 07.11.2011    source источник


Ответы (1)


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

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

person hammar    schedule 07.11.2011