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