4 ms·
But in a language with multi methods defining new extensions to the type hierarchy is defining methods that overwrite some other methods. If startup code for a
by SolarNet 10y ago
But in a language with multi methods defining new extensions to the type hierarchy is defining methods that overwrite some other methods. If startup code for a library calls any methods which are later meant to be extended you are going to get weird unexpected behavior.
Lets see, there is a logging library with a custom string formatter, in another library I specialize the string formatter, and I log that the library started up with a value based on that abstract tag. Now as a user I specialize a concrete type for logging, but it doesn't work, why? That's a weird error, and also, the expression problem via multi-methods, well done you guys implemented multi-methods that don't solve one of the core purposes of multi-methods.
How much you wanna bet I can find startup code in many python libraries which calls code that is later specialized by users. Edge cases are where it's important.