Module Tezos_protocol_environment_014_PtKathma.Error_monad

type error_category = [
  1. | `Branch
  2. | `Outdated
  3. | `Permanent
  4. | `Temporary
]
type error = ..
val error_encoding : error Data_encoding.t
val pp : Format.formatter -> error -> unit
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) -> unit
val json_of_error : error -> Data_encoding.json
val error_of_json : Data_encoding.json -> error
type error_info = {
  1. category : error_category;
  2. id : string;
  3. title : string;
  4. description : string;
  5. schema : Data_encoding.json_schema;
}
val pp_info : Format.formatter -> error_info -> unit
val get_registered_errors : unit -> error_info list
type 'err trace
type !'a tzresult = ('a, error trace) Pervasives.result
val make_trace_encoding : 'error Data_encoding.t -> 'error trace Data_encoding.t
val trace_encoding : error trace Data_encoding.t
val pp_trace : Format.formatter -> error trace -> unit
val result_encoding : 'a Data_encoding.t -> 'a tzresult Data_encoding.t
val ok : 'a -> ('a, 'trace) Pervasives.result
val return : 'a -> ('a, 'trace) Pervasives.result Lwt.t
val return_unit : (unit, 'trace) Pervasives.result Lwt.t
val return_none : ('a option, 'trace) Pervasives.result Lwt.t
val return_some : 'a -> ('a option, 'trace) Pervasives.result Lwt.t
val return_nil : ('a list, 'trace) Pervasives.result Lwt.t
val return_true : (bool, 'trace) Pervasives.result Lwt.t
val return_false : (bool, 'trace) Pervasives.result Lwt.t
val error : 'err -> ('a, 'err trace) Pervasives.result
val trace_of_error : 'err -> 'err trace
val fail : 'err -> ('a, 'err trace) Pervasives.result Lwt.t
val (>>=) : 'a Lwt.t -> ('a -> 'b Lwt.t) -> 'b Lwt.t
val (>|=) : 'a Lwt.t -> ('a -> 'b) -> 'b Lwt.t
val (>>?) : ('a, 'trace) Pervasives.result -> ('a -> ('b, 'trace) Pervasives.result) -> ('b, 'trace) Pervasives.result
val (>|?) : ('a, 'trace) Pervasives.result -> ('a -> 'b) -> ('b, 'trace) Pervasives.result
val (>>=?) : ('a, 'trace) Pervasives.result Lwt.t -> ('a -> ('b, 'trace) Pervasives.result Lwt.t) -> ('b, 'trace) Pervasives.result Lwt.t
val (>|=?) : ('a, 'trace) Pervasives.result Lwt.t -> ('a -> 'b) -> ('b, 'trace) Pervasives.result Lwt.t
val (>>?=) : ('a, 'trace) Pervasives.result -> ('a -> ('b, 'trace) Pervasives.result Lwt.t) -> ('b, 'trace) Pervasives.result Lwt.t
val (>|?=) : ('a, 'trace) Pervasives.result -> ('a -> 'b Lwt.t) -> ('b, 'trace) Pervasives.result Lwt.t
val record_trace : 'err -> ('a, 'err trace) Pervasives.result -> ('a, 'err trace) Pervasives.result
val trace : 'err -> ('b, 'err trace) Pervasives.result Lwt.t -> ('b, 'err trace) Pervasives.result Lwt.t
val record_trace_eval : (unit -> 'err) -> ('a, 'err trace) Pervasives.result -> ('a, 'err trace) Pervasives.result
val trace_eval : (unit -> 'err) -> ('b, 'err trace) Pervasives.result Lwt.t -> ('b, 'err trace) Pervasives.result Lwt.t
val error_unless : bool -> 'err -> (unit, 'err trace) Pervasives.result
val error_when : bool -> 'err -> (unit, 'err trace) Pervasives.result
val fail_unless : bool -> 'err -> (unit, 'err trace) Pervasives.result Lwt.t
val fail_when : bool -> 'err -> (unit, 'err trace) Pervasives.result Lwt.t
val unless : bool -> (unit -> (unit, 'trace) Pervasives.result Lwt.t) -> (unit, 'trace) Pervasives.result Lwt.t
val when_ : bool -> (unit -> (unit, 'trace) Pervasives.result Lwt.t) -> (unit, 'trace) Pervasives.result Lwt.t
val dont_wait : (exn -> unit) -> ('trace -> unit) -> (unit -> (unit, 'trace) Pervasives.result Lwt.t) -> unit
val catch : ?catch_only:(exn -> bool) -> (unit -> 'a) -> 'a tzresult
val catch_f : ?catch_only:(exn -> bool) -> (unit -> 'a) -> (exn -> error) -> 'a tzresult
val catch_s : ?catch_only:(exn -> bool) -> (unit -> 'a Lwt.t) -> 'a tzresult Lwt.t
val join_e : (unit, 'err trace) Pervasives.result list -> (unit, 'err trace) Pervasives.result
val all_e : ('a, 'err trace) Pervasives.result list -> ('a list, 'err trace) Pervasives.result
val both_e : ('a, 'err trace) Pervasives.result -> ('b, 'err trace) Pervasives.result -> ('a * 'b, 'err trace) Pervasives.result
type !'a shell_tzresult = ('a, Tezos_base.TzPervasives.Error_monad.tztrace) Stdlib.result
module Lwt_syntax : sig ... end
module Result_syntax : sig ... end
module Lwt_result_syntax : sig ... end
module Tzresult_syntax : sig ... end
module Lwt_tzresult_syntax : sig ... end