Generalizing to workflow

Re-request of #252, now with `Negate` merged.