adjunctions-4.4.2: Adjunctions and representable functors
Copyright(C) 2011-2013 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
PortabilityMPTCs, fundeps
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Trans.Conts

Description

Cont r ~ Contravariant.Adjoint (Op r) (Op r)
Conts r ~ Contravariant.AdjointT (Op r) (Op r)
ContsT r w m ~ Contravariant.AdjointT (Op (m r)) (Op (m r)) w
Synopsis

Continuation passing style

cont :: ((a -> r) -> r) -> Cont r a Source #

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

Multiple-continuation passing style

type Conts r (w :: Type -> Type) = ContsT r w Identity Source #

runConts :: Functor w => Conts r w a -> w (a -> r) -> r Source #

conts :: Functor w => (w (a -> r) -> r) -> Conts r w a Source #

Multiple-continuation passing style transformer

newtype ContsT r (w :: Type -> Type) (m :: Type -> Type) a Source #

Constructors

ContsT 

Fields

Instances

Instances details
Comonad w => MonadTrans (ContsT r w) Source # 
Instance details

Defined in Control.Monad.Trans.Conts

Methods

lift :: Monad m => m a -> ContsT r w m a #

Comonad w => Applicative (ContsT r w m) Source # 
Instance details

Defined in Control.Monad.Trans.Conts

Methods

pure :: a -> ContsT r w m a #

(<*>) :: ContsT r w m (a -> b) -> ContsT r w m a -> ContsT r w m b #

liftA2 :: (a -> b -> c) -> ContsT r w m a -> ContsT r w m b -> ContsT r w m c #

(*>) :: ContsT r w m a -> ContsT r w m b -> ContsT r w m b #

(<*) :: ContsT r w m a -> ContsT r w m b -> ContsT r w m a #

Functor w => Functor (ContsT r w m) Source # 
Instance details

Defined in Control.Monad.Trans.Conts

Methods

fmap :: (a -> b) -> ContsT r w m a -> ContsT r w m b #

(<$) :: a -> ContsT r w m b -> ContsT r w m a #

Comonad w => Monad (ContsT r w m) Source # 
Instance details

Defined in Control.Monad.Trans.Conts

Methods

(>>=) :: ContsT r w m a -> (a -> ContsT r w m b) -> ContsT r w m b #

(>>) :: ContsT r w m a -> ContsT r w m b -> ContsT r w m b #

return :: a -> ContsT r w m a #

Comonad w => Apply (ContsT r w m) Source # 
Instance details

Defined in Control.Monad.Trans.Conts

Methods

(<.>) :: ContsT r w m (a -> b) -> ContsT r w m a -> ContsT r w m b #

(.>) :: ContsT r w m a -> ContsT r w m b -> ContsT r w m b #

(<.) :: ContsT r w m a -> ContsT r w m b -> ContsT r w m a #

liftF2 :: (a -> b -> c) -> ContsT r w m a -> ContsT r w m b -> ContsT r w m c #

callCC :: forall (w :: Type -> Type) a r (m :: Type -> Type) b. Comonad w => ((a -> ContsT r w m b) -> ContsT r w m a) -> ContsT r w m a Source #