title: Should arguments that default to None always be type hinted as Optional[]?
body: <p>Compare these two functions:</p>
  
  <pre><code>from typing import Optional
  
  def foo1(bar: str = None) -&gt; None:
      print(bar)
  
  def foo2(bar: Optional[str] = None) -&gt; None:
      print(bar)
  </code></pre>
  
  <p>Mypy doesn't complain about either of them. Is the <code>Optional[]</code> really necessary then? Is there any subtle difference between these two declarations?</p>