Module

Control.Monad.Trans.Control

#MonadTransControl

class (MonadTrans t, Monad m) <= MonadTransControl m t stT | t -> stT where

Members

  • liftWith :: forall b. ((forall a. t m a -> m (stT a)) -> m b) -> t m b
  • restoreT :: forall a. m (stT a) -> t m a

Instances

#integrateT

integrateT :: forall m t stT a. Bind (t m) => MonadTransControl m t stT => t m (stT a) -> t m a

Pack a state belonging to t back into it, instead of throwing it away

#MonadBaseControl

class (MonadBase base m) <= MonadBaseControl base m stM | m -> stM base where

Members

  • liftBaseWith :: forall b. ((forall a. m a -> base (stM a)) -> base b) -> m b
  • restoreM :: forall a. base (stM a) -> m a

Instances

#integrateM

integrateM :: forall base m stM a. Applicative base => MonadBaseControl base m stM => m (stM a) -> m a

Pack a state belonging to m back into it, instead of throwing it away

#defaultLiftBaseWith

defaultLiftBaseWith :: forall base m t stM stT b. MonadBaseControl base m stM => Monad m => Monad base => MonadTrans t => MonadTransControl m t stT => ((forall a. t m a -> base (Compose stM stT a)) -> base b) -> t m b

#defaultRestoreM

defaultRestoreM :: forall base m t stM stT a. MonadBaseControl base m stM => Monad m => Monad base => MonadTrans t => MonadTransControl m t stT => base (Compose stM stT a) -> t m a

#WriterTStT

data WriterTStT w a

Constructors

Instances

#writerTStTToTuple

writerTStTToTuple :: forall w a. WriterTStT w a -> Tuple a w

#tupleToWriterTStT

tupleToWriterTStT :: forall w a. Tuple a w -> WriterTStT w a

#FreeTStT

newtype FreeTStT f m a

Constructors

Instances

#freeTStTToEither

freeTStTToEither :: forall f m a. FreeTStT f m a -> Either a (f (FreeT f m a))

#eitherToFreeTStT

eitherToFreeTStT :: forall f m a. Either a (f (FreeT f m a)) -> FreeTStT f m a

Modules