Twice now I've thought I had overloaded the appropriate functions for a new
type, only to observe apparent inconsistencies in the way the new type
behaves. Of course, there were no inconsistencies. Instead, the observed
behaviour stemmed from overloading a function that is not at the bottom of
the function chain. The two examples where I stuffed up were:
1) overloading Base.< instead of overloading Base.isless, and
2) overloading Base.string(x) instead of overloading Base.show(io, x).
My question is this: What is the communities best solution/resource for
knowing which functions are at the bottom of the chain and thus are the
ones that need to be overloaded for a new type?
Cheers and thanks in advance to all repsonders,