| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
StateMachine
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 #
Constructors
| SchedulerTick | |
| SchedulerRequest ProcessId input ProcessId | |
| SchedulerResponse ProcessId output ProcessId | 
Instances
| (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 # | |