Using the specific case noted in my question about polymorphism, I would say something along the lines of polymorphic extension functions. These questions might be a touch premature as I haven't tried to get it functional in code yet, I'm only halfway through the language docs right now. But during my reading, it seems like the extension function would result in a static function would execute the method on the declared type of the function, and only on that function without using reflection to check the type of the parameter specifically, and invoke its method.