Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.27 KB | None | 0 0
  1. newtype StateT s m a = StateT {runStateT :: (s -> m (a,s)) }
  2.  
  3. instance (Monad m) => Monad (StateT s m) where
  4. return a = StateT $ \s -> return (a,s)
  5. (StateT x) >>= f = \s ->
  6. do (a,s') <- runStateT x;
  7. (f a, s');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement