I think this may have been discussed before, but I was largely dismissed because no one though it would be possible to implement.
However assuming it is possible, what is the general feeling towards function overloading, as seen in C# and Java? To me, it saves me coming up with convoluted names for tackle various parameter combinations, even though the function/methods themselves all do the same thing, as well as saving having to omit type hinting in order to manually type check within the function. The previous RFC on union types attempted to fulfill a similar operation, but it failed to go through, but given the support it never the less had, I'm hoping that overloading will be more acceptable. To give an idea of how I'd implement it, I'd first try by hashing the function name with the type hints, plus the number of arguments, with variadics and references also taken into account on top of handling of dynamic arguments. The exact method is open to implementation, but it is possible to create an order priority and conflict resolution to enable overloading, while hopefully maintaining backwards compatibility with all existing core/ext/user functions. Please give your thoughts, thanks, Dominic