box-0.7.0: boxes
Safe HaskellSafe-Inferred
LanguageHaskell2010

Box.Cont

Description

A continuation type.

Synopsis

Documentation

newtype Cont m a Source #

A continuation similar to ` Control.Monad.ContT` but where the result type is swallowed by an existential

Constructors

Cont 

Fields

  • with :: forall r. (a -> m r) -> m r
     

Instances

Instances details
Monad (Cont m) Source # 
Instance details

Defined in Box.Cont

Methods

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

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

return :: a -> Cont m a #

Functor (Cont m) Source # 
Instance details

Defined in Box.Cont

Methods

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

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

Applicative (Cont m) Source # 
Instance details

Defined in Box.Cont

Methods

pure :: a -> Cont m a #

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

liftA2 :: (a -> b -> c) -> Cont m a -> Cont m b -> Cont m c #

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

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

MonadIO m => MonadIO (Cont m) Source # 
Instance details

Defined in Box.Cont

Methods

liftIO :: IO a -> Cont m a #

Semigroup a => Semigroup (Cont m a) Source # 
Instance details

Defined in Box.Cont

Methods

(<>) :: Cont m a -> Cont m a -> Cont m a #

sconcat :: NonEmpty (Cont m a) -> Cont m a #

stimes :: Integral b => b -> Cont m a -> Cont m a #

(Functor m, Semigroup a, Monoid a) => Monoid (Cont m a) Source # 
Instance details

Defined in Box.Cont

Methods

mempty :: Cont m a #

mappend :: Cont m a -> Cont m a -> Cont m a #

mconcat :: [Cont m a] -> Cont m a #

runCont :: Cont m (m r) -> m r Source #

finally run a continuation

(<$.>) :: (a -> m r) -> Cont m a -> m r infixr 3 Source #

fmap over a continuation and then run the result.

The . position is towards the continuation

(<*.>) :: Cont m (a -> m r) -> Cont m a -> m r infixr 3 Source #

fmap over a continuation and then run the result.

The . position is towards the continuation

newtype Cont_ m a Source #

sometimes you have no choice but to void it up

Constructors

Cont_ 

Fields

  • with_ :: (a -> m ()) -> m ()
     

Instances

Instances details
Monad (Cont_ m) Source # 
Instance details

Defined in Box.Cont

Methods

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

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

return :: a -> Cont_ m a #

Functor (Cont_ m) Source # 
Instance details

Defined in Box.Cont

Methods

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

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

Applicative (Cont_ m) Source # 
Instance details

Defined in Box.Cont

Methods

pure :: a -> Cont_ m a #

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

liftA2 :: (a -> b -> c) -> Cont_ m a -> Cont_ m b -> Cont_ m c #

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

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

MonadIO m => MonadIO (Cont_ m) Source # 
Instance details

Defined in Box.Cont

Methods

liftIO :: IO a -> Cont_ m a #

Semigroup a => Semigroup (Cont_ m a) Source # 
Instance details

Defined in Box.Cont

Methods

(<>) :: Cont_ m a -> Cont_ m a -> Cont_ m a #

sconcat :: NonEmpty (Cont_ m a) -> Cont_ m a #

stimes :: Integral b => b -> Cont_ m a -> Cont_ m a #

(Functor m, Semigroup a, Monoid a) => Monoid (Cont_ m a) Source # 
Instance details

Defined in Box.Cont

Methods

mempty :: Cont_ m a #

mappend :: Cont_ m a -> Cont_ m a -> Cont_ m a #

mconcat :: [Cont_ m a] -> Cont_ m a #

runCont_ :: Cont_ m (m ()) -> m () Source #

finally run a Cont_