`type t`````
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`
`include Core_kernel.Invariant.S with type t := t`
`type t`````
`val invariant : t Base__.Invariant_intf.inv`
`val at : [> Core_kernel.read ] T1.t ‑> Async_kernel__.Import.Time_ns.t ‑> callback ‑> t`

These are like the corresponding `run_*` functions, except they return an event that one can later `abort`.

`val after : [> Core_kernel.read ] T1.t ‑> Async_kernel__.Import.Time_ns.Span.t ‑> callback ‑> t`
`val at_intervals : [> Core_kernel.read ] T1.t ‑> Async_kernel__.Import.Time_ns.Span.t ‑> callback ‑> t`
`module Abort_result : sig ... end`
`val abort : [> Core_kernel.read ] T1.t ‑> t ‑> Abort_result.t`

`abort t` aborts the event `t`, if possible, and returns `Ok` if the event was aborted, or the reason it could not be aborted. `abort` returns `Currently_happening` iff it is called on an event while running that event's callback.

`val abort_exn : [> Core_kernel.read ] T1.t ‑> t ‑> unit`
`val abort_if_possible : [> Core_kernel.read ] T1.t ‑> t ‑> unit`