I'm not sure if you already have something working, but we have several in our codebase, all following a similar pattern. For example: newtype GeoServer a = GeoServer { unGeoServer :: ReaderT GeoServerState (ServerPartT IO) a } instance MonadBaseControl IO GeoServer where newtype StM GeoServer a = StMGeoServer { unStMGeoServer :: StM (ReaderT GeoServerState (ServerPartT IO)) a } liftBaseWith f = GeoServer (liftBaseWith (\run -> f (liftM StMGeoServer . run . unGeoServer))) restoreM = GeoServer . restoreM . unStMGeoServer Erik On Wed, Aug 22, 2012 at 9:16 AM, yi huang <yi.codeplayer@gmail.com> wrote:
I have a `newtype Yun a = Yun { unYun :: ReaderT YunEnv (ResourceT IO) a }` , and i need to define an instance of `MonadBaseControl IO` for it. Newtype instance deriving don't work here. I guess the answer is simple, i just can't figure it out, hope anybody can lightening me.
Best regards. Yihuang.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe