It does.  In the most recent version, the full class declaration runs

class MonadST m where
type StateThread m
liftST :: ST (StateThread m) a -> m a

and the StateThread propagates accordingly.

Louis Wasserman
wasserman.lo...@gmail.com


On Thu, Feb 19, 2009 at 2:10 AM, Sittampalam, Ganesh <
ganesh.sittampa...@credit-suisse.com> wrote:

> Henning Thielemann wrote:
> > On Mon, 16 Feb 2009, Louis Wasserman wrote:
> >
> >> Overnight I had the following thought, which I think could work
> >> rather well.  The most basic implementation of the idea is as
> >> follows:
> >>
> >> class MonadST s m | m -> s where
> >> liftST :: ST s a -> m a
> >>
> >> instance MonadST s (ST s) where ...
> >> instance MonadST s m => MonadST ...
> >
> > Like MonadIO, isn't it?
>
> I think it should be, except that you need to track 's' somewhere.
>
> Ganesh
>
>
> ==============================================================================
> Please access the attached hyperlink for an important electronic
> communications disclaimer:
>
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
>
> ==============================================================================
>
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to