sig
  type t
  val create : ?max_threads:int -> unit -> Thread_pool.t
  val add_work : ('a -> 'b) -> 'a -> Thread_pool.t -> unit
  val shutdown : Thread_pool.t -> unit
end