파이프를 사용하여 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를 작성하는 방법을 모르겠습니다. 다른 모나드 변환기의 인스턴스는 모나드를 "스왑"하는 함수를 사용합니다 (예 : EitherT e m a -> m (EitherT e Identity a)). 그러나 파이프에서 이러한 함수를 찾을 수 없습니다. ProxyCorrect/ProxyFast의 MonadTransControl 인스턴스는 어떻게 생겼습니까? 아니면 하나를 쓰는 것이 불가능합니까? (예인 경우 파이프 4.0에서 가능합니까?)
나는 'MonadTransControl'을 결코 이해하지 못했습니다. 그것을 사용하는 방법을 설명하는 자습서 또는 블로그 게시물이 있습니까? –
답변을 찾기 위해 http://www.yesodweb.com/blog/2011/08/monad-control – bennofs