Hi all,

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,

Colin

Reply via email to