val create : unit ‑> 'a t
val close : 'a t ‑> unit
val register : 'a t ‑> f:('a ‑> interest_status Async.Deferred.t) ‑> unit
val register_init : 'a t ‑> i:(unit ‑> unit Async.Deferred.t) ‑> f:('a ‑> interest_status Async.Deferred.t) ‑> unit
val on_update : 'a t ‑> f:('a ‑> unit) ‑> unit
val upon : 'a t ‑> f:('a ‑> unit) ‑> unit
val send : 'a t ‑> 'a ‑> unit