aivika-transformers-5.8: Transformers for the Aivika simulation library

Simulation.Aivika.Trans.Composite

Contents

Description

Tested with: GHC 8.0.1

It defines the Composite monad transformer that allows constructing components which can be then destroyed in case of need.

Synopsis

data Composite m a Source #

It represents a composite which can be then destroyed in case of need.

Instances

class CompositeLift t m where Source #

A type class to lift the Composite computation to other computations.

Minimal complete definition

liftComposite

Methods

liftComposite :: Composite m a -> t m a Source #

Lift the specified Composite computation to another computation.

Instances
 Source # Instance detailsDefined in Simulation.Aivika.Trans.Composite MethodsliftComposite :: Composite m a -> Composite m a Source #

runComposite :: Composite m a -> DisposableEvent m -> Event m (a, DisposableEvent m) Source #

Run the computation returning the result and some DisposableEvent that being applied destroys the composite, for example, unsubscribes from signals or cancels the processes.

runComposite_ :: Monad m => Composite m a -> Event m a Source #

Like runComposite but retains the composite parts during the simulation.

runCompositeInStartTime_ :: MonadDES m => Composite m a -> Simulation m a Source #

Like runComposite_ but runs the computation in the start time.

runCompositeInStopTime_ :: MonadDES m => Composite m a -> Simulation m a Source #

Like runComposite_ but runs the computation in the stop time.

disposableComposite :: Monad m => DisposableEvent m -> Composite m () Source #

When destroying the composite, the specified action will be applied.