quickcheck-state-machine-distributed-0.0.1: Test monadic programs using state machine based models

Safe HaskellNone
LanguageHaskell2010

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 #

Instances

(Show output, Show input) => Show (SchedulerMessage input output) Source # 

Methods

showsPrec :: Int -> SchedulerMessage input output -> ShowS #

show :: SchedulerMessage input output -> String #

showList :: [SchedulerMessage input output] -> ShowS #

Generic (SchedulerMessage input output) Source # 

Associated Types

type Rep (SchedulerMessage input output) :: * -> * #

Methods

from :: SchedulerMessage input output -> Rep (SchedulerMessage input output) x #

to :: Rep (SchedulerMessage input output) x -> SchedulerMessage input output #

(Binary input, Binary output) => Binary (SchedulerMessage input output) Source # 

Methods

put :: SchedulerMessage input output -> Put #

get :: Get (SchedulerMessage input output) #

putList :: [SchedulerMessage input output] -> Put #

type Rep (SchedulerMessage input output) Source # 

newtype SchedulerPid Source #

Constructors

SchedulerPid ProcessId 

Instances

Generic SchedulerPid Source # 

Associated Types

type Rep SchedulerPid :: * -> * #

Binary SchedulerPid Source # 
type Rep SchedulerPid Source # 
type Rep SchedulerPid = D1 * (MetaData "SchedulerPid" "StateMachine" "quickcheck-state-machine-distributed-0.0.1-9t7n298Zc725FUIrkZnY2T" True) (C1 * (MetaCons "SchedulerPid" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ProcessId)))