val create : hashable:'a Core.Hashtbl.Hashable.t ‑> ?on_exn:('a ‑> exn ‑> unit) ‑> ?max_total_concurrent_jobs:int ‑> unit ‑> 'a tval enqueue : 'a t ‑> key:'a ‑> (unit ‑> 'b Async.Deferred.t) ‑> 'b Async.Deferred.tval has_empty_spot : 'a t ‑> key:'a ‑> boolval run_now : 'a t ‑> key:'a ‑> (unit ‑> 'b Async.Deferred.t) ‑> [ `no_empty_spots | `running of 'b Async.Deferred.t ]