title: How to annotate function that takes a tuple of variable length? (variadic tuple type annotation)
body: <p>I have a function that takes a tuple of different lengths as an argument:</p>
  
  <pre><code>from typing import Tuple
  
  
  def process_tuple(t: Tuple[str]):
      # Do nasty tuple stuff
  
  process_tuple(("a",))
  process_tuple(("a", "b"))
  process_tuple(("a", "b", "c"))
  
  </code></pre>
  
  <p>When I annotate function like mentioned above, I get these error messages</p>
  
  <pre><code>fool.py:9: error: Argument 1 to "process_tuple" has incompatible type "Tuple[str, str]"; expected "Tuple[str]"
  fool.py:10: error: Argument 1 to "process_tuple" has incompatible type "Tuple[str, str, str]"; expected "Tuple[str]"
  </code></pre>
  
  <p><code>process_tuple</code> really works with tuples and I use them as immutable lists of variable length. I haven't found any consensus on this topic on the internet, so I wonder how should I annotate this kind of input. </p>