I think it's easier to have it in `SemanticComparer<T>` then.. (one less new type to support).