reduce<R>(merge: (last: R | undefined, event: any) => R, initial?: R | undefined): this {
this.steps.push(v => {
last = merge(last, v);
return last;
});
return this;
}
latch(equals: (a: any, b: any) => boolean = (a, b) => a === b): ChainableSynthesis {