classThis engine runs two engines in parallel, and waits until both are
[['a, 'b]]sync_engine :
'a #engine -> 'b #engine ->
[('a * 'b)]
`Done(synchronization). The product of the two
`Donearguments is taken as the combined result.
If one of the engines goes to the states
the combined engine will follow this transition. The other,
non-aborted and non-errorneous engine is aborted in this case.
`Error has higher precedence than
If the combined engine is aborted, this request is forwarded
to both member engines.