On 8/22/07, Ian Lynagh <[EMAIL PROTECTED]> wrote: > > On Wed, Aug 22, 2007 at 01:27:00PM -0500, Rich Neswold wrote: > > > > > newtype App a = App (ReaderT Connection (CGIT IO) a) > > > deriving (Monad, MonadIO, MonadReader Connection) > > > > Unfortunately, when another module tries to actually use the monad, I > > get warnings about "No instance for (MonadCGI App)". I tried making an > > instance: > > > > > instance MonadCGI App where > > > cgiAddHeader = ? > > > cgiGet = ? > > You have three choices: > > 1: > > 2: > > 3: > Provide a single instance for App that does the whole thing: > instance MonadCGI App where > cgiAddHeader n v = App $ lift $ cgiAddHeader n v > cgiGet x = App $ lift $ cgiGet x > This one you would obviously have to change if you added a StateT. >
Bingo! Method #3 works beautifully! I missed the using-lift-with-the-constructor permutation. Thanks for your help! -- Rich JID: [EMAIL PROTECTED] AIM: rnezzy
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe