Sometimes it would be quite useful in some languages to define two overloaded functions/methods as one answer. That is, instead of doing this (using Java as an example):
int f(Object o){if (o instanceof Integer) ... else if (o instanceof String) ...}
You would do this:
int f(Integer i){...}
int f(String s) {...}
In case of Java, you don't have to change to call site, but I'm not sure if this applies to all languages.