title: Specialize type in method that implements a generic interface method
body: <p>I have a method in an interface that I want to specialize the types for in classes that implement that interface. Something like this:</p>
  
  <pre><code>public interface Iface
  {
      Function&lt;Some, Some&gt; Updater&lt;T&gt;(Func&lt;T, T&gt; op) where T : Iface;
  }
  
  public class Test : Iface
  {
      public Function&lt;Some, Some&gt; Updater&lt;T&gt;(Func&lt;T, T&gt; op) where T : Test
      {
          // Use op with parameters that are of type Test
          return null;
      }
  }
  </code></pre>
  
  <p>This doesn't compile of course. I know I could put a type param on Iface and get it to compile, but that gets messy and so I'm wondering if there is some way to do it without that. Is there some way just from the declarations of the methods in the interface and class that can make it so I can have the subclass work with it's own type but declare it in the interface?</p>