Hey all,

I've been trying to access the inner state "s" for this type:

newtype TestThingey s a = TestThingey {
      runTrans :: ReaderT Int (StateT String (StateT s IO)) a
} deriving (Monad, MonadIO, MonadState String, MonadReader Int)

It doesn't seem to be doable.  I could make it into a regular type declaration, but then I lose the GeneralizedNewtypeDeriving.  Is this common?  Or do people just avoid needing to use "lift"?

-Arthur