monadology-0.3: The best ideas in monad-related classes and types.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.Specific.StepT

Synopsis

Documentation

newtype StepT f m a Source #

A monad that can be run step-by-step until the result.

Constructors

MkStepT 

Fields

Instances

Instances details
Functor f => TransConstraint MonadIO (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

hasTransConstraint :: forall (m :: Type -> Type). MonadIO m => Dict (MonadIO (StepT f m)) Source #

Functor f => TransConstraint Functor (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

hasTransConstraint :: forall (m :: Type -> Type). Functor m => Dict (Functor (StepT f m)) Source #

Functor f => TransConstraint Monad (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

hasTransConstraint :: forall (m :: Type -> Type). Monad m => Dict (Monad (StepT f m)) Source #

Functor f => MonadTransHoist (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

hoist :: forall (m1 :: Type -> Type) (m2 :: Type -> Type). (Monad m1, Monad m2) => (m1 --> m2) -> StepT f m1 --> StepT f m2 Source #

Functor f => MonadTrans (StepT f) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

lift :: Monad m => m a -> StepT f m a #

(Functor f, MonadIO m) => MonadIO (StepT f m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

liftIO :: IO a -> StepT f m a #

(Functor f, Monad m) => Applicative (StepT f m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

pure :: a -> StepT f m a #

(<*>) :: StepT f m (a -> b) -> StepT f m a -> StepT f m b #

liftA2 :: (a -> b -> c) -> StepT f m a -> StepT f m b -> StepT f m c #

(*>) :: StepT f m a -> StepT f m b -> StepT f m b #

(<*) :: StepT f m a -> StepT f m b -> StepT f m a #

(Functor f, Functor m) => Functor (StepT f m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

fmap :: (a -> b) -> StepT f m a -> StepT f m b #

(<$) :: a -> StepT f m b -> StepT f m a #

(Functor f, Monad m) => Monad (StepT f m) Source # 
Instance details

Defined in Control.Monad.Ology.Specific.StepT

Methods

(>>=) :: StepT f m a -> (a -> StepT f m b) -> StepT f m b #

(>>) :: StepT f m a -> StepT f m b -> StepT f m b #

return :: a -> StepT f m a #

runSteps :: Monad m => Extract f -> StepT f m --> m Source #

Run all the steps until done.

pendingStep :: (Functor f, Monad m) => f --> StepT f m Source #

A pending step for this result.