title: Static typing in python3: list vs List
body: <p>What is the difference between using list and List when defining for example the argument of a function in python3? For example, what is the difference between </p>
  
  <pre><code>def do_something(vars: list):
  </code></pre>
  
  <p>and</p>
  
  <pre><code>def do_something(vars: List):
  </code></pre>
  
  <p>The <a href="https://docs.python.org/3/library/typing.html" rel="noreferrer">documentation</a> says:</p>
  
  <blockquote>
    <p>class typing.List(list, MutableSequence[T])</p>
    
    <p>Generic version of list. Useful for annotating return types. </p>
  </blockquote>
  
  <p>but I'm not entirely sure what the above means.</p>
  
  <p>I have similar questions for: dict vs Dict, set vs Set, etc. </p>