private static @NotNull List<ShelvedChange> getChangesNotInLists(@NotNull List<ShelvedChangeList> listsToDelete,
                                                                   @NotNull List<ShelvedChange> shelvedChanges) {
    List<ShelvedChange> result = new ArrayList<>(shelvedChanges);
    // all changes should be loaded because action performed from loaded shelf tab
    listsToDelete.stream().map(list -> requireNonNull(list.getChanges())).forEach(result::removeAll);
    return result;
  }
private static @NotNull List<ShelvedChange> getChangesNotInLists(@NotNull List<ShelvedChangeList> listsToDelete,
                                                                   @NotNull List<ShelvedChange> shelvedChanges)