functor
  (P : PCLOCK) (M : MCLOCK) (MT : MTICK) (E : LIFECYCLE) (T : PERSISTENT_TRIGGER) (Kv : KV->
  sig
    type span_ns = int64
    type trigger = T.t
    type t
    val watch : delay_ns:span_ns -> trigger -> t
    val unwatch : t -> unit
    val waiting : t -> bool
    val linger_ns : t -> span_ns
    val delay_ns : t -> span_ns
    val trigger : t -> trigger
    val fold : ('-> t -> 'a) -> '-> 'a
  end