Tighten up WorkflowBuilder types.

Mostly: don’t use a disjunction where we don’t need it.

This was part of my WorkflowBuilder refactor, but was accidentally done
on its own branch, so I’m giving it its own PR.