aivika-5.2: A multi-method simulation library

CopyrightCopyright (c) 2009-2017 David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Simulation.Aivika.Composite

Contents

Description

Tested with: GHC 8.0.1

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

Synopsis

Composite Monad

data Composite a Source #

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

class CompositeLift m where Source #

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

Minimal complete definition

liftComposite

Methods

liftComposite :: Composite a -> m a Source #

Lift the specified Composite computation to another computation.

runComposite :: Composite a -> DisposableEvent -> Event (a, DisposableEvent) 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_ :: Composite a -> Event a Source #

Like runComposite but retains the composite parts during the simulation.

runCompositeInStartTime_ :: Composite a -> Simulation a Source #

Like runComposite_ but runs the computation in the start time.

runCompositeInStopTime_ :: Composite a -> Simulation a Source #

Like runComposite_ but runs the computation in the stop time.

disposableComposite :: DisposableEvent -> Composite () Source #

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