title: type parameter `U` of call of method `then`. Missing annotation
body: <p>I have an object which might contain a promise property declared thus:</p>
  
  <pre><code>type PromiseAction = {
    +type: string,
    promise: ?Promise&lt;any&gt;,
  };
  </code></pre>
  
  <p>The <code>action</code> argument to a function is declared to be of type PromiseAction:</p>
  
  <pre><code>(action: PromiseAction) =&gt;
  </code></pre>
  
  <p>Later on I check whether the received <code>action</code> object does have a <code>promise</code> property and if <code>action.promise</code> has a <code>then</code>:</p>
  
  <pre><code>if (action.promise &amp;&amp; typeof action.promise.then === 'function') {
  </code></pre>
  
  <p>If it does then I hook onto the promise chain:</p>
  
  <pre><code>return promise.then(
  </code></pre>
  
  <p>At which point I get the error: "type parameter <code>U</code> of call of method <code>then</code>. Missing annotation"</p>
  
  <p>I can see in the <a href="https://github.com/facebook/flow/blob/v0.56.0/lib/core.js#L600" rel="noreferrer">source for flow</a> that the <code>then</code> property of a <code>Promise</code> has a <code>U</code> parameter which, I assume, is the one being asked for.</p>
  
  <p>How can an provide that <code>U</code> annotation if I only have only one parameter <code>Promise&lt;+R&gt;</code> in the type declaration?</p>