-- | -- Module : Simulation.Aivika.Process -- Copyright : Copyright (c) 2009-2013, David Sorokin -- License : BSD3 -- Maintainer : David Sorokin -- Stability : experimental -- Tested with: GHC 7.6.3 -- -- A value in the 'Process' monad represents a discontinuous process that -- can suspend in any simulation time point and then resume later in the same -- or another time point. -- -- The process of this type can involve the 'Event', 'Dynamics' and 'Simulation' -- computations. Moreover, a value in the @Process@ monad can be run within -- the @Event@ computation. -- -- A value of the 'ProcessId' type is just an identifier of such a process. -- module Simulation.Aivika.Process (ProcessId, Process, runProcess, runProcessInStartTime, runProcessInStopTime, enqueueProcess, enqueueProcessWithStartTime, enqueueProcessWithStopTime, newProcessId, newProcessIdWithCatch, processId, holdProcess, interruptProcess, processInterrupted, passivateProcess, processPassive, reactivateProcess, cancelProcess, processCanceled, catchProcess, finallyProcess, throwProcess) where import Simulation.Aivika.Internal.Simulation import Simulation.Aivika.Internal.Dynamics import Simulation.Aivika.Internal.Event import Simulation.Aivika.Internal.Process