如何將另一個單粒變換器添加到Yesod Handler
堆棧中?向Yesod處理程序堆棧中添加單粒變換器
具體而言,我想從Control.Monad.CryptoRandom
中添加CRandT
,這樣我就可以爲諸如會話ID和密碼鍵之類的事物生成安全的隨機數。
如果我確實設法將它添加到堆棧中,它將在對Web服務器的調用中共享還是將爲每個連接生成一個新的?我關心的原因是後者將使用用於初始化發生器的熵,而前者將在初始化後繼續使用相同的發生器。
或者我可能離開基地,完全不理解monad變壓器堆棧。
我認爲你可以將'CRandT g Handler'做爲你的monad,並且在你爲'Handler'類型應用運行函數之前,你必須使用'runCRandT'或'evalCRandT'。 – bheklilr 2014-08-28 14:45:58