ratchetfreak
1 2 3 4 abs :: overload{ (f : float ) -> float{return ...}, (f : int ) -> int{return ...}, ... }
As long as abs is treated as a namespace for anonymous functions where you can inject more overloads from somewhere else in the code this is fine. Otherwise this now has the same problems as methods inside structs/classes in c++, where you cannot extend the functionality of a class if you cannot directly edit the sourcefile it resides in.
The whole point of overloading is to extend a function to have multiple signatures. Kind of like one level below generics.
If you can't extend a function from somewhere else, it defeats the purpose.