title: Not sure why this generates a mypy "Incompatible types in assignment"
body: <p>Simple example of what's confusing me:</p>
  <pre><code>from typing import Callable, List, Union
  
  Value = Union[bool, int, str]
  Helper = Callable[[Value], List[Value]]
  
  
  def func_with_alias(aa: Value) -&gt; List[Value]:
      return []
  
  
  def func_with_type(aa: bool) -&gt; List[Value]:
      return []
  
  
  your_func1: Helper = func_with_alias
  your_func2: Helper = func_with_type
  </code></pre>
  <p>mypy complains that &quot;your_func2&quot; has an incompatible type:
  <code>error: Incompatible types in assignment (expression has type &quot;Callable[[bool], List[Union[bool, int, str]]]&quot;, variable has type &quot;Callable[[Union[bool, int, str]], List[Union[bool, int, str]]]&quot;)</code></p>
  <p>Why doesn't it let me do this, as <code>bool</code> is in <code>Union[bool, int, str]</code>?</p>
  <pre><code>❯ mypy --version
  mypy 0.782
  </code></pre>