class[['a, 'b]]
seq_engine :'a #engine -> ('a -> 'b #engine) ->
['b]
engine
This engine runs two engines in sequential order. It is called
let eng_s = new seq_engine eng_a f
When eng_a
goes to the state `Done arg
, the function f
is called to
obtain
let eng_b = f arg
eng_b
runs until it is also in state `Done
.
If eng_a
or eng_b
go to states `Aborted
or `Error
, the
sequential engine eng_s
does so, too. If eng_s
is aborted,
this request will be forwarded to the currently active engine,
eng_a
or eng_b
.
If calling f
results in an exception, this is handled as if eng_a
signaled an exception.