@Override
  public int compare(T first, T second) {
    return myWeigher.weigh(myScopeSupplier.apply(first), myScope)
      .compareTo(myWeigher.weigh(myScopeSupplier.apply(second), myScope));
  }
@Override
  public int compare(T first, T second)