sig
  exception Bug of string
  exception Finally of exn * exn
  exception Validation_error of string list
  exception Unimplemented of string
  type decimal = float
  val sexp_of_decimal : Common.decimal -> Sexplib.Sexp.t
  val decimal_of_sexp : Sexplib.Sexp.t -> Common.decimal
  val bin_size_decimal : Common.decimal Bin_prot.Size.sizer
  val bin_write_decimal : Common.decimal Bin_prot.Write_ml.writer
  val bin_write_decimal_ : Common.decimal Bin_prot.Unsafe_write_c.writer
  val bin_writer_decimal : Common.decimal Bin_prot.Type_class.writer
  val bin_read_decimal : Common.decimal Bin_prot.Read_ml.reader
  val bin_read_decimal_ : Common.decimal Bin_prot.Unsafe_read_c.reader
  val bin_read_decimal__ :
    (int -> Common.decimal) Bin_prot.Unsafe_read_c.reader
  val bin_reader_decimal : Common.decimal Bin_prot.Type_class.reader
  val bin_decimal : Common.decimal Bin_prot.Type_class.t
  type ('a, 'b) result = ('a, 'b) Result.t = Ok of '| Error of 'b
  type 'a bound = Incl of '| Excl of '| Unbounded
  type passfail = Pass | Fail of string
  type immutable
  val bin_size_immutable : Common.immutable Bin_prot.Size.sizer
  val bin_write_immutable : Common.immutable Bin_prot.Write_ml.writer
  val bin_write_immutable_ : Common.immutable Bin_prot.Unsafe_write_c.writer
  val bin_writer_immutable : Common.immutable Bin_prot.Type_class.writer
  val bin_read_immutable : Common.immutable Bin_prot.Read_ml.reader
  val bin_read_immutable_ : Common.immutable Bin_prot.Unsafe_read_c.reader
  val bin_read_immutable__ :
    (int -> Common.immutable) Bin_prot.Unsafe_read_c.reader
  val bin_reader_immutable : Common.immutable Bin_prot.Type_class.reader
  val bin_immutable : Common.immutable Bin_prot.Type_class.t
  val sexp_of_immutable : Common.immutable -> Sexplib.Sexp.t
  val immutable_of_sexp : Sexplib.Sexp.t -> Common.immutable
  type read_only
  val bin_size_read_only : Common.read_only Bin_prot.Size.sizer
  val bin_write_read_only : Common.read_only Bin_prot.Write_ml.writer
  val bin_write_read_only_ : Common.read_only Bin_prot.Unsafe_write_c.writer
  val bin_writer_read_only : Common.read_only Bin_prot.Type_class.writer
  val bin_read_read_only : Common.read_only Bin_prot.Read_ml.reader
  val bin_read_read_only_ : Common.read_only Bin_prot.Unsafe_read_c.reader
  val bin_read_read_only__ :
    (int -> Common.read_only) Bin_prot.Unsafe_read_c.reader
  val bin_reader_read_only : Common.read_only Bin_prot.Type_class.reader
  val bin_read_only : Common.read_only Bin_prot.Type_class.t
  val sexp_of_read_only : Common.read_only -> Sexplib.Sexp.t
  val read_only_of_sexp : Sexplib.Sexp.t -> Common.read_only
  type read_write
  val bin_size_read_write : Common.read_write Bin_prot.Size.sizer
  val bin_write_read_write : Common.read_write Bin_prot.Write_ml.writer
  val bin_write_read_write_ :
    Common.read_write Bin_prot.Unsafe_write_c.writer
  val bin_writer_read_write : Common.read_write Bin_prot.Type_class.writer
  val bin_read_read_write : Common.read_write Bin_prot.Read_ml.reader
  val bin_read_read_write_ : Common.read_write Bin_prot.Unsafe_read_c.reader
  val bin_read_read_write__ :
    (int -> Common.read_write) Bin_prot.Unsafe_read_c.reader
  val bin_reader_read_write : Common.read_write Bin_prot.Type_class.reader
  val bin_read_write : Common.read_write Bin_prot.Type_class.t
  val sexp_of_read_write : Common.read_write -> Sexplib.Sexp.t
  val read_write_of_sexp : Sexplib.Sexp.t -> Common.read_write
  type write_only
  val bin_size_write_only : Common.write_only Bin_prot.Size.sizer
  val bin_write_write_only : Common.write_only Bin_prot.Write_ml.writer
  val bin_write_write_only_ :
    Common.write_only Bin_prot.Unsafe_write_c.writer
  val bin_writer_write_only : Common.write_only Bin_prot.Type_class.writer
  val bin_read_write_only : Common.write_only Bin_prot.Read_ml.reader
  val bin_read_write_only_ : Common.write_only Bin_prot.Unsafe_read_c.reader
  val bin_read_write_only__ :
    (int -> Common.write_only) Bin_prot.Unsafe_read_c.reader
  val bin_reader_write_only : Common.write_only Bin_prot.Type_class.reader
  val bin_write_only : Common.write_only Bin_prot.Type_class.t
  val sexp_of_write_only : Common.write_only -> Sexplib.Sexp.t
  val write_only_of_sexp : Sexplib.Sexp.t -> Common.write_only
  type never_returns
  val never_returns : Common.never_returns -> 'a
  val protectx : f:('-> 'b) -> '-> finally:('-> unit) -> 'b
  val protect : f:(unit -> 'a) -> finally:(unit -> unit) -> 'a
  val critical_section : Mutex.t -> f:(unit -> 'a) -> 'a
  val read_wrap :
    ?binary:bool -> f:(Pervasives.in_channel -> 'a) -> string -> 'a
  val write_wrap :
    ?binary:bool -> f:(Pervasives.out_channel -> 'a) -> string -> 'a
  val write_lines : string -> string list -> unit
  val input_lines : ?fix_win_eol:bool -> Pervasives.in_channel -> string list
  val read_lines : string -> string list
  val fst3 : 'a * 'b * '-> 'a
  val snd3 : 'a * 'b * '-> 'b
  val trd3 : 'a * 'b * '-> 'c
  val ss_fst : ('a, 'b) Space_safe_tuple.T2.t -> 'a
  val ss_snd : ('a, 'b) Space_safe_tuple.T2.t -> 'b
  val ss_fst3 : ('a, 'b, 'c) Space_safe_tuple.T3.t -> 'a
  val ss_snd3 : ('a, 'b, 'c) Space_safe_tuple.T3.t -> 'b
  val ss_trd3 : ('a, 'b, 'c) Space_safe_tuple.T3.t -> 'c
  val may : ('-> unit) -> 'a option -> unit
  val uw : 'a option -> 'a
  val ( |! ) : '-> ('-> 'b) -> 'b
  val ident : '-> 'a
  val const : '-> '-> 'a
  external ascending : '-> '-> int = "%compare"
  val descending : '-> '-> int
  val ( ^/ ) : string -> string -> string
  val failwithf : ('a, unit, string, unit -> 'b) Pervasives.format4 -> 'a
  val invalid_argf : ('a, unit, string, unit -> 'b) Pervasives.format4 -> 'a
  val exitf : ('a, unit, string, unit -> 'b) Pervasives.format4 -> 'a
  val equal : '-> '-> bool
  val phys_equal : '-> '-> bool
  val ( == ) : '-> '-> [ `Consider_using_phys_equal ]
  val ( != ) : '-> '-> [ `Consider_using_phys_equal ]
  val kprintf : '-> [ `Please_use_ksprintf ]
  val seek_out : Pervasives.out_channel -> int64 -> unit
  val pos_out : Pervasives.out_channel -> int64
  val out_channel_length : Pervasives.out_channel -> int64
  val seek_in : Pervasives.in_channel -> int64 -> unit
  val pos_in : Pervasives.in_channel -> int64
  val in_channel_length : Pervasives.in_channel -> int64
end