if (x) {
    return {bar: 'baz'};  // OK, because of covariant type param
  }
At the moment, all type params are invariant with
the exception of the single param to the Promise class,
which is covariant.

Explicit variance control via annotation is coming,
but not immediately. In the meantime, Promise's
participation in async/await makes certain kinds of
errors onerous (and nonobvious) without covariance.

@flow