
Isn't this exactly what the `zoom` function does from `Control.Lens.Zoom`?
flip execState (1, 1) $ zoom _1 $ modify succ (2, 1)
On Wed, Jan 28, 2015 at 6:14 AM, Christopher Done
runSubStateT :: Monad m => (s -> s') -> (s' -> s) -> StateT s' m a -> StateT s m a runSubStateT to from m = StateT (\s -> liftM (\(a,s') -> (a,from s')) (runStateT m (to s)))
Anyone ever needed something like this? Does it already exist in some form in the standard libraries?
Ciao _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Chih-Mao Chen (PkmX) System Software Laboratory Department of Computer Science National Chiao Tung University