@Contract(mutates = "param2")
  public static <T> void add(T element, @NotNull Collection<? super T> result, @NotNull Disposable parentDisposable) {
    if (result.add(element)) {
      Disposer.register(parentDisposable, () -> result.remove(element));
    }
  }
@Contract(mutates = "param2")
  public static <T> void add(T element, @NotNull Collection<? super T> result, @NotNull Disposable parentDisposable)