package core

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This module extends Base.Error with bin_io.

type t = Base__Error.t
val compare : t Base__Ppx_compare_lib.compare
val equal : t Base__Ppx_compare_lib.equal
val hash_fold_t : t Base__Ppx_hash_lib.hash_fold
val hash : t -> Base__Ppx_hash_lib.Std.Hash.hash_value
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
val t_sexp_grammar : t Sexplib0.Sexp_grammar.t
val invariant : t Base__Invariant_intf.inv
val to_string_hum : t -> string
val to_string_mach : t -> string
val to_string_hum_deprecated : t -> string
val of_string : string -> t
val of_lazy : string Base__.Lazy.t -> t
val of_lazy_sexp : Base__.Sexp.t Base__.Lazy.t -> t
val of_thunk : (unit -> string) -> t
val of_lazy_t : t Base__.Lazy.t -> t
val create : ?here:Base__.Source_code_position0.t -> ?strict:unit -> string -> 'a -> ('a -> Base__.Sexp.t) -> t
val create_s : Base__.Sexp.t -> t
val createf : ('a, unit, string, t) Stdlib.format4 -> 'a
val tag : t -> tag:string -> t
val tag_s : t -> tag:Base__.Sexp.t -> t
val tag_s_lazy : t -> tag:Base__.Sexp.t Base__.Lazy.t -> t
val tag_arg : t -> string -> 'a -> ('a -> Base__.Sexp.t) -> t
val of_list : ?trunc_after:int -> t list -> t
val of_exn : ?backtrace:[ `Get | `This of string ] -> exn -> t
val to_exn : t -> exn
val pp : Base__.Formatter.t -> t -> unit
module Internal_repr : sig ... end
val raise : t -> 'a
val raise_s : Base__.Sexp.t -> 'a
val to_info : t -> Base__.Info.t
val of_info : Base__.Info.t -> t

This include is the source of the bin_io functions.

include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader

This function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.

val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
module Stable : sig ... end

Error.t is not wire-compatible with Error.Stable.V1.t. See info.mli for details.

val failwiths : ?strict:Base.Unit.t -> here:Stdlib.Lexing.position -> Base.String.t -> 'a -> ('a -> Base.Sexp.t) -> _
failwiths ?strict ~here message a sexp_of_a
= Error.raise (Error.create ?strict ~here s a sexp_of_a)

As with Error.create, sexp_of_a a is lazily computed when the error is converted to a sexp. So if a is mutated in the time between the call to failwiths and the sexp conversion, those mutations will be reflected in the error message. Use ~strict:() to force sexp_of_a a to be computed immediately.

In this signature we write ~here:Lexing.position rather than ~here:Source_code_position.t to avoid a circular dependency.

val failwithp : ?strict:Base.Unit.t -> Stdlib.Lexing.position -> Base.String.t -> 'a -> ('a -> Base.Sexp.t) -> _
  • deprecated [since 2020-03] Use [failwiths] instead.
OCaml

Innovation. Community. Security.