static void M(IDerived obj)
 {
     obj.Y();  // allowed; IDerived has two Y, but one hides the other
 }