module Raw_ivar: sig .. end
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