Make an Execution[T] type, which is a monad, which makes composing Jobs easy.

So, the problem if we flatMap an Execution, it is going to push it into two flows. a Zip will be only one.

Let's recall, to make this pure, all the side effects (write) must wind up in the Execution type. So, they can use for (which will sequence things) or zip (which will run the branches in parallel), or they can avoid functional purity and go back the way the had it.

Any better suggestions?