-- 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.3
-- | 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 Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Trans.State.Plus.StatePlusT s)
instance GHC.Base.Functor m => GHC.Base.Functor (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance (GHC.Base.Monad m, GHC.Base.Functor m) => GHC.Base.Applicative (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance GHC.Base.Monad m => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance GHC.Base.Monad m => GHC.Base.MonadPlus (Control.Monad.Trans.State.Plus.StatePlusT s m)
instance (GHC.Base.Monad m, GHC.Base.Functor m) => GHC.Base.Alternative (Control.Monad.Trans.State.Plus.StatePlusT s m)