Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
type MonadStateMachine config state output1 output2 m = (MonadReader config m, MonadWriter [Either String (ProcessId, Either output1 output2)] m, MonadState state m, MonadError HaltStateMachine m, MonadIO m) Source #
type StateMachine config state output1 output2 = ReaderT config (StateT state (ExceptT HaltStateMachine (WriterT [Either String (ProcessId, Either output1 output2)] IO))) Source #
stateMachineProcess :: forall input output1 output2 config state result. (Binary input, Typeable input) => (Binary output1, Typeable output1) => (Binary output2, Typeable output2) => config -> state -> Bool -> (input -> StateMachine config state output1 output2 result) -> Process [result] Source #
stateMachineProcess_ :: (Binary input, Typeable input) => (Binary output1, Typeable output1) => (Binary output2, Typeable output2) => config -> state -> Bool -> (input -> StateMachine config state output1 output2 ()) -> Process () Source #
halt :: MonadStateMachine config state output1 output2 m => m a Source #
tell :: MonadStateMachine config state output1 output2 m => String -> m () Source #
(!) :: MonadStateMachine config state output1 output2 m => ProcessId -> output2 -> m () Source #
(?) :: MonadStateMachine config state output1 output2 m => ProcessId -> output1 -> m () Source #
data SchedulerMessage input output Source #
SchedulerTick | |
SchedulerRequest ProcessId input ProcessId | |
SchedulerResponse ProcessId output ProcessId |
(Show output, Show input) => Show (SchedulerMessage input output) Source # | |
Generic (SchedulerMessage input output) Source # | |
(Binary input, Binary output) => Binary (SchedulerMessage input output) Source # | |
type Rep (SchedulerMessage input output) Source # | |
newtype SchedulerPid Source #