docs: public void addWatcher(Path file, Listener watcher) {
          if (file == null) throw new IllegalArgumentException("Null file argument");
          if (watcher == null) throw new IllegalArgumentException("Null watcher argument");
          synchronized (mutex) {
              startWatchingInternal(file).add(() -> watcher);
          }
      }