MonadRef를 사용하여 MonadCont 구현 반환 유형에 유형을 사용할 수 없다는forallCont 잘 알려진 문제 가 있습니다 . 그러나 다음과 같은 정의는 괜찮습니다. class Monad m => MonadCont' m where callCC' :: ((a -> forall b. m b) -> m a) -> m a shift :: (forall r.(a -> m r) -> m r) -> m a reset :: m a -> m a 그런 다음 의미있는 인스턴스를 찾습니다. 에서 본 논문 저자는 우리가 구현할 수 있다고 주장 MonadFix상단에 ContT r m있음을 제공하는 m구현 MonadFix및 MonadRef. 그러나 우리가 가지고 있다면 MonadRef실제로 callCC'다음과 같이 구현..