使用管道,我試圖爲ProxyFast或ProxyCorrect類型編寫MonadTransControl的實例。這是我得到的:用於ProxyFast/ProxyCorrect的MonadTransControl實例
instance MonadTransControl (ProxyFast a' a b' b) where
data StT (ProxyFast a' a b' b) a = StProxy { unStProxy :: ProxyFast a' a b' b Identity a}
liftWith = undefined
restoreT = undefined
我不知道如何寫liftWith或restoreT。其他monad變換器的實例都使用「交換」monad的函數,例如EitherT e m a - > m(EitherT e Identity a),但我在管道中找不到任何此類函數。 MonadTransControl for ProxyCorrect/ProxyFast的實例如何看起來像?還是不可能寫一個? (如果是的話,是否有可能在管道4.0?)
我從來沒有理解'MonadTransControl'。是否有一些教程或博客文章解釋如何使用它? –
我只能找到http://www.yesodweb.com/blog/2011/08/monad-control – bennofs