Allows a function to work with a any subtypes of the required parameter types. S<:T Allows for Function Overwriting Problems Diamond Problem Implementations Python C++