Huh how is that possible? What if you are passing a derived class to a function that accepts a base class argument? does it just emit 2 functions each with the different potential class arguments or something?
Consider the case of `final`, or when the compiler otherwise can show there are no other derived classes (or no derived classes overriding a function)