sig
module Event :
sig
type 'a t
val at : 'a Events.Event.t -> Core.Std.Time.t
val value : 'a Events.Event.t -> 'a
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Events.Event.t -> Sexplib.Sexp.t
end
type 'a t
val invariant : 'a Events.t -> unit
val create : now:Core.Std.Time.t -> 'a Events.t
val iter : 'a Events.t -> f:('a Events.Event.t -> unit) -> unit
val is_empty : 'a Events.t -> bool
val now : 'a Events.t -> Core.Std.Time.t
val advance_clock :
'a Events.t ->
to_:Core.Std.Time.t -> [ `Not_in_the_future | `Ok of 'a list ]
val add :
'a Events.t ->
at:Core.Std.Time.t ->
'a -> [ `Not_in_the_future | `Ok of 'a Events.Event.t ]
val remove :
'a Events.t -> 'a Events.Event.t -> [ `Not_present | `Removed ]
val next_upcoming : 'a Events.t -> 'a Events.Event.t option
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a Events.t -> Sexplib.Sexp.t
val ounit_tests : unit -> OUnit.test
end