Hi Jason, thanks for your reply.<div>  I was curious that we could bring really continuations into haskell, the traditional callCC brings a lot of unnecessary</div><div>type restrictions<br><br><div class="gmail_quote">On Wed, Aug 24, 2011 at 12:45 PM, Jason Dagit <span dir="ltr">&lt;<a href="mailto:dagitj@gmail.com">dagitj@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Wed, Aug 24, 2011 at 9:19 AM, bob zhang &lt;<a href="mailto:bobzhang1988@gmail.com">bobzhang1988@gmail.com</a>&gt; wrote:<br>

&gt; Hi, all<br>
&gt; I thought the right type for ContT should be<br>
&gt; newtype ContT m a = ContT {runContT :: forall r. (a-&gt; m r) -&gt; m r}<br>
&gt; and<br>
&gt; other control operators<br>
&gt; shift :: Monad m =&gt; (forall r . (a-&gt; ContT m r) -&gt; ContT m r) -&gt; ContT m a<br>
&gt; reset :: Monad m =&gt; ContT m a -&gt; ContT m a<br>
&gt; callCC :: ((a-&gt; (forall r . ContT m r)) -&gt; ContT m a) -&gt; ContT m a<br>
&gt;<br>
&gt; unfortunately, I can not make callCC type check, and don&#39;t know how to<br>
&gt; do it.<br>
&gt; I managed to make shift, reset type check<br>
<br>
</div>Correct me if I&#39;m wrong, but you&#39;re wanting to implement the delimited<br>
form of continuations?<br>
<br>
If so, you might take a look at this and the associated papers:<br>
<a href="http://hackage.haskell.org/package/CC-delcont" target="_blank">http://hackage.haskell.org/package/CC-delcont</a><br>
<font color="#888888"><br>
Jason<br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>Best, bob<br>
</div>