code: @NonNull
      public static <T> Data<T> fromList(@NonNull final Callable<List<? extends T>> loader,
                                         @NonNull ExecutorService executor) {
          return new ArrayData<T>(executor) {
              @NonNull
              @Override
              protected List<? extends T> load() throws Throwable {
                  return loader.call();
              }
          };
      }
docs: Creates a {@link Data} whose elements will be populated by invoking the specified loader function in a
  worker thread with the specified {@link ExecutorService}.
  @param loader The function to be invoked to load the list of elements.
  @param executor The {@linkplain ExecutorService} used to invoke the loader function.
  @param <T> The type of element presented by the returned data.
  @return A {@linkplain Data} instance that will present the elements retrieved via the loader function.