@Override
 public int compareTo(MatchResult o) {
   int cmp = Integer.compare(this.getExact(), o.getExact());
   if (cmp == 0) {
     cmp = Integer.compare(this.getAssignable(), o.getAssignable());
     if (cmp == 0) {
       cmp = Integer.compare(this.getCoercible(), o.getCoercible());
     }
   }
   return cmp;
 }