As for your specific suggestion: An immediate problem is that we might want to compare two different datatypes with one-another. Now the question becomes: which protocol implementation to call?
Passing a module (and using compare as a “behaviour” function) is more flexible and handles these kinds of situations without problem.






















