> 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.