supplemented-0.5.1: Early termination for monads

Safe HaskellNone
LanguageHaskell2010

Supplemented

Documentation

data Supplemented m a Source #

Instances

MonadTrans Supplemented Source # 

Methods

lift :: Monad m => m a -> Supplemented m a #

Monad m => Monad (Supplemented m) Source # 

Methods

(>>=) :: Supplemented m a -> (a -> Supplemented m b) -> Supplemented m b #

(>>) :: Supplemented m a -> Supplemented m b -> Supplemented m b #

return :: a -> Supplemented m a #

fail :: String -> Supplemented m a #

Functor m => Functor (Supplemented m) Source # 

Methods

fmap :: (a -> b) -> Supplemented m a -> Supplemented m b #

(<$) :: a -> Supplemented m b -> Supplemented m a #

Monad m => Applicative (Supplemented m) Source # 

Methods

pure :: a -> Supplemented m a #

(<*>) :: Supplemented m (a -> b) -> Supplemented m a -> Supplemented m b #

(*>) :: Supplemented m a -> Supplemented m b -> Supplemented m b #

(<*) :: Supplemented m a -> Supplemented m b -> Supplemented m a #

MonadPlus m => Alternative (Supplemented m) Source # 

Methods

empty :: Supplemented m a #

(<|>) :: Supplemented m a -> Supplemented m a -> Supplemented m a #

some :: Supplemented m a -> Supplemented m [a] #

many :: Supplemented m a -> Supplemented m [a] #

MonadPlus m => MonadPlus (Supplemented m) Source # 

Methods

mzero :: Supplemented m a #

mplus :: Supplemented m a -> Supplemented m a -> Supplemented m a #

runSupplemented :: Monad m => Supplemented m a -> m (a, m ()) Source #

essence :: Monad m => m a -> Supplemented m a Source #

supplement :: Monad m => m () -> Supplemented m () Source #