On Fri, Oct 15, 2004 at 07:54:46PM -0700, [EMAIL PROTECTED] wrote:
> 
> Andrew Pimlott wrote:
> > I want values in my existential type to denote, for some monad, a
> > monadic operation and a way to run the monad.  Except, I want it mix
> > the operation with operations in another monad, so it use a monad
> > transformer.
> 
> I'm afraid, that phrase was a little misleading. It seems that you
> meant:
>       - encapsulate one _specific_ monad transformer
>       - to be able to apply it to _any_ (not some!) monad

Yes.  I wrote that quickly (grammar mistakes too) and thought the code
would make it clear.  But it would have been better to make the words
precise.

> > data Bar a m = forall t. (MonadTrans t, Monad (t m)) =>
> >              Bar (t m a -> m a) (t m Int)
> >
> > data Foo = Foo (forall a m. Monad m => Bar a m)

Wow, very nice.  Just do it in two steps!  Thank you for this
enlightening solution.

Andrew
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to