title: IronPython overload resolution on generic types
body: <p>I have a C# class with overloaded static methods like these:</p>
  
  <pre class="lang-cs prettyprint-override"><code>// Added to the Simple class in Tutorial\Extend\csextend.cs
  public static int Foo(IEnumerable&lt;int&gt; values)
  {
      return 1;
  }
  
  public static int Foo(IEnumerable&lt;string&gt; values)
  {
      return 2;
  }
  </code></pre>
  
  <p>I get an error when I try to call these from IronPython 2.6. I am passing a python list that contains strings.</p>
  
  <pre class="lang-py prettyprint-override"><code>import clr
  clr.AddReferenceToFile("csextend.dll")
  import Simple
  
  Simple.Foo(["alpha", "bravo", "charlie"])
  </code></pre>
  
  <pre>
  TypeError: Multiple targets could match: Foo(IEnumerable[str]), Foo(IEnumerable[
  int])
  </pre>
  
  <p>My first question is why doesn't this work? It seems like overload resolution should work on this. Is this a bug in IronPython? What is the cleanest workaround. I could rename the routines so they don't overload each other, but then I am letting ironpython quirks alter the design of the C# class. </p>
  
  <p>Is there a clean way to give python a clue that the list is entirely composed of one type, and that it should pick a specific overload?</p>
  
  <p>Related to <a href="https://stackoverflow.com/questions/1981566/errors-accessing-net-class-method-overloads-in-ironpython">this question</a></p>