title: Generic argument not assignable
body: <p>I'm using C#.NET 3.5. I get </p>
  
  <blockquote>
    <p>argument type 'GenericTest.BarkStrategy' is not assignible to parameter type 'GenericsTest.IAnimalStrategy'</p>
  </blockquote>
  
  <p>with the following (for this question as much simplified as possible) code:</p>
  
  <pre><code>using System.Collections.Generic;
  
  namespace GenericsTest {
      class Program {
          static void Main(string[] args) {
              List&lt;IAnimalStrategy&lt;IAnimal&gt;&gt; strategies = 
                  new List&lt;IAnimalStrategy&lt;IAnimal&gt;&gt;();
              strategies.Add(new BarkStrategy());
          }
      }
  
      interface IAnimal { }
      interface IAnimalStrategy&lt;T&gt; where T : IAnimal { }
      class Dog : IAnimal { }
      class BarkStrategy : IAnimalStrategy&lt;Dog&gt; { }
  }
  </code></pre>