1.5. Effects
The effect system (MailboxActors.Effect) describes side-effects
produced by a single behaviour step. Effects form an inductive type with
seven constructors:
-
noop— no observable action, -
send j target payload— enqueue a message for engine typej, -
update env— replace the engine's local environment, -
spawn j cfg state— create a new child engine of typej, -
mfilter f— transition toready f, installing a new acceptance filter, -
terminate— signal engine termination, -
chain e₁ e₂— sequence two effects.
The chain constructor gives effect composition without requiring a monadic
bind; the semantics evaluates e₁ first, then e₂ on the resulting state.