The combination of the And, Then,
and When operators behave much like the
Zip operator, but they do so by means of intermediate data
structures. And accepts two or more Observables and combines the
emissions from each, one set at a time, into Pattern
objects.
Then operates on such Pattern
objects, transforming
them in a Plan
. When in turn transforms these various
Plan
objects into emissions from an Observable.