sig
  type t = java'util'concurrent'ExecutorCompletionService java_instance
  val make : ThreadPoolExecutor.t -> ExecutorCompletionService.t
  val poll : ExecutorCompletionService.t -> 'Future.t option
  val poll_time :
    ExecutorCompletionService.t ->
    java_long -> TimeUnit.t -> 'Future.t option
  val submit : ExecutorCompletionService.t -> ('-> 'b) -> '-> 'Future.t
  val take : ExecutorCompletionService.t -> 'Future.t
  val null : ExecutorCompletionService.t
  external is_null : ExecutorCompletionService.t -> bool = "java is_null"
  external is_not_null : ExecutorCompletionService.t -> bool
    = "java is_not_null"
  val wrap :
    ExecutorCompletionService.t -> ExecutorCompletionService.t option
  val unwrap :
    ExecutorCompletionService.t option -> ExecutorCompletionService.t
end