@Override
 public int compareTo(@Nonnull MethodProtoReference o) {
   int res = getReturnType().compareTo(o.getReturnType());
   if (res != 0) return res;
   return CollectionUtils.compareAsIterable(
       Ordering.usingToString(), getParameterTypes(), o.getParameterTypes());
 }
 @Override
 public boolean equals(@Nullable Object o) {
   if (o instanceof MethodProtoReference) {
     MethodProtoReference other = (MethodProtoReference) o;
     return getReturnType().equals(other.getReturnType())
         && CharSequenceUtils.listEquals(getParameterTypes(), other.getParameterTypes());
   }
   return false;
 }