title: What is the purpose of the double underscore, after a single underscore, as a parameter to a function / class method?
body: <p>In my exploration of Polymer Dart 1.0.0, I've found for events, and observer methods, I am forced to use this pattern</p>
  
  <pre><code>@reflectable
  void someEvent([_, __]) {
      ...
  }
  </code></pre>
  
  <p>or on an observer method</p>
  
  <pre><code>@Observe('someField')
  void someFieldChanged([_, __]) {
      ...
  }
  </code></pre>
  
  <p>I understand what the square brackets are for, optional parameters, I also understand that if you don't care about the passed parameters, you can represent this parameter with the underscore.  What surprised me was the examples I looked at used double underscore, __, as the second symbol between the square brackets.  When I tried to use just a single underscore again, I get a duplicate formal parameter error.  Is there some reason why the second parameter you don't care about has to be different from the first?  By this logic, if I include a third one, does it mean it'll have to be a triple underscore ___?</p>
  
  <p>Thanks.</p>