It does.&nbsp; In the most recent version, the full class declaration runs<br><br>class MonadST m where<br><div style="margin-left: 40px;">type StateThread m<br>liftST :: ST (StateThread m) a -&gt; m a<br></div><br>and the StateThread propagates accordingly.<br>
<br clear="all">Louis Wasserman<br><a href="mailto:wasserman.louis@gmail.com">wasserman.louis@gmail.com</a><br>
<br><br><div class="gmail_quote">On Thu, Feb 19, 2009 at 2:10 AM, Sittampalam, Ganesh <span dir="ltr">&lt;<a href="mailto:ganesh.sittampalam@credit-suisse.com">ganesh.sittampalam@credit-suisse.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">Henning Thielemann wrote:<br>
&gt; On Mon, 16 Feb 2009, Louis Wasserman wrote:<br>
&gt;<br>
&gt;&gt; Overnight I had the following thought, which I think could work<br>
&gt;&gt; rather well.&nbsp; The most basic implementation of the idea is as<br>
&gt;&gt; follows:<br>
&gt;&gt;<br>
&gt;&gt; class MonadST s m | m -&gt; s where<br>
&gt;&gt; liftST :: ST s a -&gt; m a<br>
&gt;&gt;<br>
&gt;&gt; instance MonadST s (ST s) where ...<br>
&gt;&gt; instance MonadST s m =&gt; MonadST ...<br>
&gt;<br>
&gt; Like MonadIO, isn&#39;t it?<br>
<br>
</div></div>I think it should be, except that you need to track &#39;s&#39; somewhere.<br>
<font color="#888888"><br>
Ganesh<br>
</font><div><div></div><div class="Wj3C7c"><br>
==============================================================================<br>
Please access the attached hyperlink for an important electronic communications disclaimer:<br>
<br>
<a href="http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html" target="_blank">http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html</a><br>
==============================================================================<br>
<br>
</div></div></blockquote></div><br>