
On 8/22/07, Ian Lynagh
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: rich@neswold.homeunix.net AIM: rnezzy