The idiom is usually use to implement comparable types is to provide lessp (and aequalis if need be), so I am not as familiar with using the compare operator. However, my concern is that making lessp and friends regular functions would not allow users to provide optimized versions of those functions as specialized methods. Is a good implementation of compare fast enough?
Matt