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.
