AsyncSourceinclude module type of struct include Async_kernel endmodule Async_kernel_config = Async_kernel.Async_kernel_configmodule Async_kernel_require_explicit_time_source =
Async_kernel.Async_kernel_require_explicit_time_sourceThe functions below are broadly useful when writing Async programs, and so are made available at the toplevel.
val catch :
?here:Core.Source_code_position.t ->
?info:Core.Info.t ->
?name:string ->
(unit -> unit) ->
exn Async_kernel.Deferred.tval try_with :
?here:Core.Source_code_position.t ->
?info:Core.Info.t ->
?name:string ->
?extract_exn:bool ->
?run:[ `Now | `Schedule ] ->
?rest:[ `Call of exn -> unit | `Log | `Raise ] ->
(unit -> 'a Async_kernel.Deferred.t) ->
('a, exn) Core.Result.t Async_kernel.Deferred.tval with_timeout_exn :
Core.Core_private.Time_ns_alternate_sexp.Span.t ->
'a Async_kernel.Deferred.t ->
error:Core.Error.t ->
'a Async_kernel.Deferred.tLet_syntax supportinclude Core.Monad.Infix with type 'a t := 'a Async_kernel.Deferred.tequivalent to Deferred.upon.
val (>>=?) :
('a, 'b) Async_kernel.Deferred.Result.t ->
('a -> ('c, 'b) Async_kernel.Deferred.Result.t) ->
('c, 'b) Async_kernel.Deferred.Result.tequivalent to Deferred.Result.bind.
val (>>|?) :
('a, 'b) Async_kernel.Deferred.Result.t ->
('a -> 'c) ->
('c, 'b) Async_kernel.Deferred.Result.tequivalent to Deferred.Result.map.
include module type of struct include Async_kernel.Deferred.Let_syntax endval (>>=) :
'a Async_kernel.Deferred.t ->
('a -> 'b Async_kernel.Deferred.t) ->
'b Async_kernel.Deferred.tt >>= f returns a computation that sequences the computations represented by two monad elements. The resulting computation first does t to yield a value v, and then runs the computation returned by f v.
t >>| f is t >>= (fun a -> return (f a)).
include module type of struct include Async_unix endval every :
?start:unit Async_kernel.Deferred.t ->
?stop:unit Async_kernel.Deferred.t ->
?continue_on_error:bool ->
Async_unix__.Import.Time.Span.t ->
(unit -> unit) ->
unitval with_timeout :
Async_unix__.Import.Time.Span.t ->
'a Async_kernel.Deferred.t ->
'a Clock.Or_timeout.t Async_kernel.Deferred.tval schedule :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> unit) ->
unitval schedule' :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.tval within :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> unit) ->
unitval within' :
?monitor:Async_kernel.Monitor.t ->
?priority:Async_kernel.Priority.t ->
(unit -> 'a Async_kernel.Deferred.t) ->
'a Async_kernel.Deferred.tShadow blocking functions in Core.Printf to prevent their unintentional use.
include sig ... endval close_in_noerr :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val close_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val close_out_noerr :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val close_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val flush_all :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val flush :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val in_channel_length :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_binary_int :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_byte :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_char :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_line :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_lines :
?fix_win_eol:'a ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val input_value :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_in_bin :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_in_gen :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_out_bin :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_out_gen :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val open_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val out_channel_length :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output_binary_int :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output_byte :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output_char :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output_string :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val output_value :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val pos_in :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val pos_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val read_float :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val read_int :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val read_line :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val read_lines :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val read_wrap :
?binary:'a ->
f:'b ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val really_input :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val seek_in :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val seek_out :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val set_binary_mode_in :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val set_binary_mode_out :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val write_lines :
[< `This_is_async__Think_about_blocking ] ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val write_wrap :
?binary:'a ->
f:'b ->
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]val eprint_s :
[< `This_is_async__Think_about_blocking ] ->
[> `This_is_async__Think_about_blocking ]include module type of struct include Async_log.Ppx_log_syntax endmodule Ppx_log_syntax = Async_log.Ppx_log_syntax.Ppx_log_syntaxAsync_log.Ppx_log_syntax.Ppx_log_syntax exists so that people can open Async_log.Ppx_log_syntax to use ppx log, instead of doing a module alias. This is consistent with Monad.Syntax.Let_syntax.
The default expect test config in code which has open Async.
An alternative to Async.Deferred_or_error_expect_test_config in which %expect has type unit rather than unit Deferred.Or_error.t. This lets one write: