private void groupAndFire(@NotNull List<? extends VFileEvent> events) {
    StreamEx.of(events)
      // group several VFileDeleteEvents together, several VFileMoveEvents together, place all other events into one-element lists
      .groupRuns((e1, e2) -> e1 instanceof VFileDeleteEvent && e2 instanceof VFileDeleteEvent ||
                             e1 instanceof VFileMoveEvent && e2 instanceof VFileMoveEvent)
      .forEach(this::fireForGrouped);
  }
private void groupAndFire(@NotNull List<? extends VFileEvent> events)