run() needs a way to distinguish between no provider vs. there is a provider, but it found no problems.  I wonder if we should disallow providers from returning null?  (Making them return `{ errors: [] }` instead).  Or we could return a special token for the no-provider case...