-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | MonadPlus for StateT
--
-- Implements MonadPlus with left catch (MonadOr) for StateT.
@package state-plus
@version 0.1
-- | MonadPlus with left catch (MonadOr) for StateT.
module Control.Monad.Trans.State.Plus
-- | StatePlusT behaves similar to StateT monad transformer
data StatePlusT s m a
-- | Evaluate StatePlusT monad. In difference from runStateT it returns
-- Nothing if mzero has been encountered. Just
-- a otherwise.
runStatePlusT :: Monad m => StatePlusT s m a -> s -> m (Maybe a, s)
-- | Execute StatePlusT monad returning resulting state
execStatePlusT :: Monad m => StatePlusT s m a -> s -> m s
-- | Evaluate StatePlusT monad returning resulting value. See above for the
-- semantics.
evalStatePlusT :: Monad m => StatePlusT s m a -> s -> m (Maybe a)
instance Functor m => Functor (StatePlusT s m)
instance MonadTrans (StatePlusT s)
instance MonadIO m => MonadIO (StatePlusT s m)
instance Monad m => MonadPlus (StatePlusT s m)
instance Monad m => MonadState s (StatePlusT s m)
instance Monad m => Monad (StatePlusT s m)