public void foo<T2> () { (new List<T2> ()).Map<T> (new Fun<T2,T> ()); } }
static void Main() { List <D> x = new List <D> (); x.foo <C> (x); List <string> y = new List <string> (); y.foo <C> (y); }