class [('a, 'b)] seq_engine :'a #engine ->
('a -> 'b #engine) -> ['b] engine
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.