On a mostly unrelated note, C++ overcomes this problem quite neatly. You can define multiple functions of the same name that take different types, and the compiler will know what function to execute based on what type you pass it.