title: Nested Generic Interfaces with Inheritance
body: <p>Definition:    </p>
  
  <pre><code>public interface IRecord { }
  public interface IEvent&lt;out T&gt; { }
  public interface IHandler&lt;out T&gt; { }
  
  public class RecordA : IRecord { }
  public class EventA : IEvent&lt;RecordA&gt; { }
  public class HandlerA : IHandler&lt;IEvent&lt;IRecord&gt;&gt; { }
  </code></pre>
  
  <p>Code:</p>
  
  <pre><code>IHandler&lt;EventA&gt; h1 = new HandlerA() as IHandler&lt;EventA&gt;;
  IHandler&lt;IEvent&lt;RecordA&gt;&gt; h2 = new HandlerA() as IHandler&lt;IEvent&lt;RecordA&gt;&gt;;
  </code></pre>
  
  <p>Why both h1 and h2 result into NULL? </p>
  
  <p>Based on definition of [HandlerA] it should be able to handle any IEvent[IRecord] type.</p>