I can write a stack push function in the reader monad like so:

    import Control.Monad.Reader

    push :: String -> Reader [String] a ->  Reader [String] a
    push s action = local (s :) action

How can I write a push that works inside a monad transformer?

    push' :: MonadTrans t => String -> t (Reader [String]) a ->  t (Reader [String]) a
    push' s action = ???