@NotNull
  public List<T> sortAndFilter(Stream<? extends T> stream) {
    return stream.filter(t -> myWeigher.weigh(myScopeSupplier.apply(t), myScope).weigh > 0)
      .sorted(Collections.reverseOrder(this)).collect(Collectors.toList());
  }
@NotNull
  public List<T> sortAndFilter(Stream<? extends T> stream)