sig
  val am_holding_async_lock : unit -> bool
  val deferred : unit -> 'Async_core.Deferred.t * ('-> unit)
  val pipe :
    unit -> 'Async_core.Pipe.Reader.t * ('-> unit) * (unit -> unit)
  val run_in_async_with_optional_cycle :
    (unit -> [ `Do_not_run_a_cycle | `Run_a_cycle ] * 'a) ->
    ('a, exn) Core.Std.Result.t
  val run_in_async : (unit -> 'a) -> ('a, exn) Core.Std.Result.t
  val run_in_async_exn : (unit -> 'a) -> 'a
  val block_on_async :
    (unit -> 'Async_core.Deferred.t) -> ('a, exn) Core.Std.Result.t
  val block_on_async_exn : (unit -> 'Async_core.Deferred.t) -> 'a
  val run_in_async_wait :
    (unit -> 'Async_core.Deferred.t) -> ('a, exn) Core.Std.Result.t
  val run_in_async_wait_exn : (unit -> 'Async_core.Deferred.t) -> 'a
  val ounit_tests : unit -> OUnit.test
end