-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Use Accessor to access state in mtl State monad class
--   
--   Use Accessor to access state in mtl State monad class
@package data-accessor-mtl
@version 0.2.0.5


-- | Access helper functions in the State monad class
module Data.Accessor.Monad.MTL.State
set :: MonadState r m => T r a -> a -> m ()
get :: MonadState r m => T r a -> m a
modify :: MonadState r m => T r a -> (a -> a) -> m ()

-- | Modify a record element and return its old value.
getAndModify :: MonadState r m => T r a -> (a -> a) -> m a

-- | Modify a record element and return its new value.
modifyAndGet :: MonadState r m => T r a -> (a -> a) -> m a

-- | Infix variant of <a>set</a>.
(%=) :: MonadState r m => T r a -> a -> m ()
infix 1 %=

-- | Infix variant of <a>modify</a>.
(%:) :: MonadState r m => T r a -> (a -> a) -> m ()
infix 1 %:
lift :: MonadState r mr => T r s -> State s a -> mr a
liftT :: forall (m :: Type -> Type) t r s a. (Monad m, MonadTrans t, MonadState r (t m)) => T r s -> StateT s m a -> t m a
