[Haskell-cafe] runSubStateT

PkmX pkmx.tw at gmail.com
Tue Jan 27 22:20:45 UTC 2015


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 <chrisdone at gmail.com> wrote:
> 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 at 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


More information about the Haskell-Cafe mailing list