I'm a bit torn on ad-hoc polymorphism. You can definitely do cool things with it. But, as others have pointed out, it does reduce type safety:
https://cs-syd.eu/posts/2023-08-25-ad-hoc-polymorphism-erode...