This is a poor sentence: "The metric function should be binary". First you say "should" when you mean "must". Second "binary" can be interpreted differently. To be explicit you should say something like "must be equivalent to a binary operator". Otherwise it can be interpreted as a function that returns a boolean value.