class[['a, 'b]]sync_engine :'a #engine -> 'b #engine ->[('a * 'b)]engine
`Done (synchronization). The product of the two `Done arguments
is taken as the combined result.
If one of the engines goes to the states `Aborted or `Error,
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 `Aborted.
If the combined engine is aborted, this request is forwarded
to both member engines.