Module

Control.Monad.Trans.Control

Package
purescript-monad-control
Repository
athanclark/purescript-monad-control

#MonadTransControl Source

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

Members

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

Instances

#WriterTStT Source

data WriterTStT w a

Constructors

Instances

#writerTStTToTuple Source

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

#tupleToWriterTStT Source

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

#MonadBaseControl Source

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

#defaultLiftBaseWith Source

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

#defaultRestoreM Source

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