Except that it would still be the case that
factorial(23) == factorial(23.0) False
Sure, but if simple type dispatch (generic functions) was built into the language, people would be perfectly comfortable with the idea that two functions with the same name but accepting different types are different functions that might return different values.
But factorial—to essentially everyone—means FACTORIAL. A function defined by simple recursion on integers. It DOES NOT mean "the actual factorial functions on the integers, but separately dispatch to (ONE OF) the proposed analytic continuations of the factorial function when given floating point arguments." Besides, what analytic continuation will we use for complex numbers?!... clearly a proposal not covering the complex plain is wrong! :-) The gamma function is already available. If you want the gamma function, just use that! -- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.