Make.Error_monadCORE : errors
val error_encoding : error Data_encoding.tval pp : Format.formatter -> error -> unitEXT : error registration/query
val register_error_kind :
error_category ->
id:string ->
title:string ->
description:string ->
?pp:(Format.formatter -> 'err -> unit) ->
'err Data_encoding.t ->
(error -> 'err option) ->
('err -> error) ->
unitval json_of_error : error -> Data_encoding.jsonval error_of_json : Data_encoding.json -> errortype error_info = {category : error_category;id : string;title : string;description : string;schema : Data_encoding.json_schema;}val pp_info : Format.formatter -> error_info -> unitval get_registered_errors : unit -> error_info listRetrieves information of registered errors
MONAD : trace, monad, etc.
type 'a tzresult = ('a, error trace) Pervasives.resultval make_trace_encoding :
'error Data_encoding.t ->
'error trace Data_encoding.tval trace_encoding : error trace Data_encoding.tval pp_trace : Format.formatter -> error trace -> unitval result_encoding : 'a Data_encoding.t -> 'a tzresult Data_encoding.tval ok : 'a -> ('a, 'trace) Pervasives.resultval return : 'a -> ('a, 'trace) Pervasives.result Lwt.tval return_unit : (unit, 'trace) Pervasives.result Lwt.tval return_none : ('a option, 'trace) Pervasives.result Lwt.tval return_some : 'a -> ('a option, 'trace) Pervasives.result Lwt.tval return_nil : ('a list, 'trace) Pervasives.result Lwt.tval return_true : (bool, 'trace) Pervasives.result Lwt.tval return_false : (bool, 'trace) Pervasives.result Lwt.tval error : 'err -> ('a, 'err trace) Pervasives.resultval trace_of_error : 'err -> 'err traceval tzfail : 'err -> ('a, 'err trace) Pervasives.result Lwt.tval record_trace :
'err ->
('a, 'err trace) Pervasives.result ->
('a, 'err trace) Pervasives.resultval trace :
'err ->
('b, 'err trace) Pervasives.result Lwt.t ->
('b, 'err trace) Pervasives.result Lwt.tval record_trace_eval :
(unit -> 'err) ->
('a, 'err trace) Pervasives.result ->
('a, 'err trace) Pervasives.resultval trace_eval :
(unit -> 'err) ->
('b, 'err trace) Pervasives.result Lwt.t ->
('b, 'err trace) Pervasives.result Lwt.tval error_unless : bool -> 'err -> (unit, 'err trace) Pervasives.resultval error_when : bool -> 'err -> (unit, 'err trace) Pervasives.resultval fail_unless : bool -> 'err -> (unit, 'err trace) Pervasives.result Lwt.tval fail_when : bool -> 'err -> (unit, 'err trace) Pervasives.result Lwt.tval unless :
bool ->
(unit -> (unit, 'trace) Pervasives.result Lwt.t) ->
(unit, 'trace) Pervasives.result Lwt.tval when_ :
bool ->
(unit -> (unit, 'trace) Pervasives.result Lwt.t) ->
(unit, 'trace) Pervasives.result Lwt.tval dont_wait :
(exn -> unit) ->
('trace -> unit) ->
(unit -> (unit, 'trace) Pervasives.result Lwt.t) ->
unitval catch : ?catch_only:(exn -> bool) -> (unit -> 'a) -> 'a tzresultcatch f executes f within a try-with block and wraps exceptions within a tzresult. catch f is equivalent to try Ok (f ()) with e -> Error (error_of_exn e).
If catch_only is set, then only exceptions e such that catch_only e is true are caught.
Whether catch_only is set or not, this function never catches non-deterministic runtime exceptions of OCaml such as Stack_overflow and Out_of_memory nor system-exceptions such as Unix.Unix_error and Sys_error.
catch_f f handler is equivalent to map_error (catch f) handler. In other words, it catches exceptions in f () and either returns the value in an Ok or passes the exception to handler for the Error.
catch_only has the same use as with catch. The same restriction on catching non-deterministic runtime exceptions applies.
catch_s is like catch but when f returns a promise. It is equivalent to
Lwt.try_bind f
(fun v -> Lwt.return (Ok v))
(fun e -> Lwt.return (Error (error_of_exn e)))If catch_only is set, then only exceptions e such that catch_only e is true are caught.
Whether catch_only is set or not, this function never catches non-deterministic runtime exceptions of OCaml such as Stack_overflow and Out_of_memory nor system-exceptions such as Unix.Unix_error and Sys_error.
val join_e :
(unit, 'err trace) Pervasives.result list ->
(unit, 'err trace) Pervasives.resultval all_e :
('a, 'err trace) Pervasives.result list ->
('a list, 'err trace) Pervasives.resultval both_e :
('a, 'err trace) Pervasives.result ->
('b, 'err trace) Pervasives.result ->
('a * 'b, 'err trace) Pervasives.result