public class List { public class Comp { public List.Comp flip (Y y, X x) { return new Flip (this); } } public class Flip : List.Comp { Comp c; public Flip (Comp cc) { c = cc; } } } class C { public static int Main () { var a = new List.Comp ().flip (true, 3); return 0; } }