public static @NotNull <T, Loc> WeighingComparable<T, Loc> weigh(Key<? extends Weigher<T, Loc>> key,
                                                                   Computable<? extends T> element,
                                                                   @Nullable Loc location) {
    @SuppressWarnings("unchecked") Weigher<T, Loc>[] array = getWeighers(key).toArray(new Weigher[0]);
    return new WeighingComparable<>(element, location, array);
  }
public static @NotNull <T, Loc> WeighingComparable<T, Loc> weigh(Key<? extends Weigher<T, Loc>> key,
                                                                   Computable<? extends T> element,
                                                                   @Nullable Loc location)