sig type runtime_counter = EV_C_FORCE_MINOR_ALLOC_SMALL | EV_C_FORCE_MINOR_MAKE_VECT | EV_C_FORCE_MINOR_SET_MINOR_HEAP_SIZE | EV_C_FORCE_MINOR_MEMPROF | EV_C_MINOR_PROMOTED | EV_C_MINOR_ALLOCATED | EV_C_REQUEST_MAJOR_ALLOC_SHR | EV_C_REQUEST_MAJOR_ADJUST_GC_SPEED | EV_C_REQUEST_MINOR_REALLOC_REF_TABLE | EV_C_REQUEST_MINOR_REALLOC_EPHE_REF_TABLE | EV_C_REQUEST_MINOR_REALLOC_CUSTOM_TABLE type runtime_phase = EV_EXPLICIT_GC_SET | EV_EXPLICIT_GC_STAT | EV_EXPLICIT_GC_MINOR | EV_EXPLICIT_GC_MAJOR | EV_EXPLICIT_GC_FULL_MAJOR | EV_EXPLICIT_GC_COMPACT | EV_MAJOR | EV_MAJOR_SWEEP | EV_MAJOR_MARK_ROOTS | EV_MAJOR_MARK | EV_MINOR | EV_MINOR_LOCAL_ROOTS | EV_MINOR_FINALIZED | EV_EXPLICIT_GC_MAJOR_SLICE | EV_FINALISE_UPDATE_FIRST | EV_FINALISE_UPDATE_LAST | EV_INTERRUPT_REMOTE | EV_MAJOR_EPHE_MARK | EV_MAJOR_EPHE_SWEEP | EV_MAJOR_FINISH_MARKING | EV_MAJOR_GC_CYCLE_DOMAINS | EV_MAJOR_GC_PHASE_CHANGE | EV_MAJOR_GC_STW | EV_MAJOR_MARK_OPPORTUNISTIC | EV_MAJOR_SLICE | EV_MAJOR_FINISH_CYCLE | EV_MINOR_CLEAR | EV_MINOR_FINALIZERS_OLDIFY | EV_MINOR_GLOBAL_ROOTS | EV_MINOR_LEAVE_BARRIER | EV_STW_API_BARRIER | EV_STW_HANDLER | EV_STW_LEADER | EV_MAJOR_FINISH_SWEEPING | EV_MINOR_FINALIZERS_ADMIN | EV_MINOR_REMEMBERED_SET | EV_MINOR_REMEMBERED_SET_PROMOTE | EV_MINOR_LOCAL_ROOTS_PROMOTE | EV_DOMAIN_CONDITION_WAIT | EV_DOMAIN_RESIZE_HEAP_RESERVATION type lifecycle = EV_RING_START | EV_RING_STOP | EV_RING_PAUSE | EV_RING_RESUME | EV_FORK_PARENT | EV_FORK_CHILD | EV_DOMAIN_SPAWN | EV_DOMAIN_TERMINATE val lifecycle_name : Runtime_events.lifecycle -> string val runtime_phase_name : Runtime_events.runtime_phase -> string val runtime_counter_name : Runtime_events.runtime_counter -> string type cursor module Timestamp : sig type t val to_int64 : Runtime_events.Timestamp.t -> int64 end module Callbacks : sig type t val create : ?runtime_begin:(int -> Runtime_events.Timestamp.t -> Runtime_events.runtime_phase -> unit) -> ?runtime_end:(int -> Runtime_events.Timestamp.t -> Runtime_events.runtime_phase -> unit) -> ?runtime_counter:(int -> Runtime_events.Timestamp.t -> Runtime_events.runtime_counter -> int -> unit) -> ?alloc:(int -> Runtime_events.Timestamp.t -> int array -> unit) -> ?lifecycle:(int -> Runtime_events.Timestamp.t -> Runtime_events.lifecycle -> int option -> unit) -> ?lost_events:(int -> int -> unit) -> unit -> Runtime_events.Callbacks.t end val start : unit -> unit val pause : unit -> unit val resume : unit -> unit val create_cursor : (string * int) option -> Runtime_events.cursor val free_cursor : Runtime_events.cursor -> unit val read_poll : Runtime_events.cursor -> Runtime_events.Callbacks.t -> int option -> int end