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


-- | Use Accessor to access state in transformers State monad
--   
--   Use Accessor to access state in transformers State monad
@package data-accessor-transformers
@version 0.2.1.7


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

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

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

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

-- | Infix variant of <a>modify</a>.
(%:) :: Monad m => T r a -> (a -> a) -> StateT r m ()
infix 1 %:
lift :: Monad m => T r s -> State s a -> StateT r m a
liftT :: (Monad m) => T r s -> StateT s m a -> StateT r m a


-- | Access helper functions in a Reader-Writer-State monad
module Data.Accessor.Monad.Trans.RWS
set :: (Monad m, Monoid w) => T s a -> a -> RWST r w s m ()
get :: (Monad m, Monoid w) => T s a -> RWST r w s m a
modify :: (Monad m, Monoid w) => T s a -> (a -> a) -> RWST r w s m ()

-- | Modify a record element and return its old value.
getAndModify :: (Monad m, Monoid w) => T s a -> (a -> a) -> RWST r w s m a

-- | Modify a record element and return its new value.
modifyAndGet :: (Monad m, Monoid w) => T s a -> (a -> a) -> RWST r w s m a

-- | Infix variant of <a>set</a>.
(%=) :: (Monad m, Monoid w) => T s a -> a -> RWST r w s m ()
infix 1 %=

-- | Infix variant of <a>modify</a>.
(%:) :: (Monad m, Monoid w) => T s a -> (a -> a) -> RWST r w s m ()
infix 1 %:
lift :: (Monad m, Monoid w) => T s1 s0 -> RWS r w s0 a -> RWST r w s1 m a
liftT :: (Monad m, Monoid w) => T s1 s0 -> RWST r w s0 m a -> RWST r w s1 m a
