code: @SafeVarargs
      public final static Observable<WatchService> watchService(final File file,
              final Kind<?>... kinds) {
          return Observable.defer(new Func0<Observable<WatchService>>() {
  
              @Override
              public Observable<WatchService> call() {
                  try {
                      final Path path = getBasePath(file);
                      WatchService watchService = path.getFileSystem().newWatchService();
                      path.register(watchService, kinds);
                      return Observable.just(watchService);
                  } catch (Exception e) {
                      return Observable.error(e);
                  }
              }
          });
  
      }
docs: Creates a {@link WatchService} on subscribe for the given file and event
  kinds.
  
  @param file
  the file to watch
  @param kinds
  event kinds to watch for
  @return observable of watch events