Issue 48

I suppose you can reason about it that way, but it just seems that the generally accepted pattern of `Comparator` use is to rank arguments in the order of importance, with the lower one following the higher one, depending on the meaning of the function. Maybe I'm thinking a bit too low level here, but for instance least(a, b) to me would mean to me "order a and b such that a <= b". 

Of course, all this logic is hidden to the user of the API (they just use the strategy name), but I just find it slightly odd that you would define these in the descending order of the values they are comparing.