module Ivar: Raw_ivar
module Handler: sig .. end
type ('a, 'execution_context) t
type ('a, 'execution_context) ivar = ('a, 'execution_context) t
include Invariant.S2
val create : unit -> ('a, 'b) t
val peek : ('a, 'b) t -> 'a option
val is_empty : ('a, 'b) t -> bool
val is_full : ('a, 'b) t -> bool
module Scheduler_dependent: functor (Scheduler : Import.Basic_scheduler) -> functor (Ivar : Raw
with type execution_context := Scheduler.Execution_context.t
with type ('a, 'execution_context) raw := ('a, 'execution_context) ivar) -> sig .. end
val debug_space_leaks : int option Pervasives.ref
val sexp_of_t : ('a -> Sexplib.Sexp.t) ->
('execution_context -> Sexplib.Sexp.t) ->
('a, 'execution_context) t -> Sexplib.Sexp.t