sig
  exception Bug of string
  exception Finally of exn * exn
  exception Unimplemented of string
  val unimplemented : string -> 'Or_error.t
  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 passfail = Pass | Fail of string
  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 immutable = private Common.read_only
  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_write = private Common.read_only
  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 protect : f:(unit -> 'a) -> finally:(unit -> unit) -> 'a
  val protectx : f:('-> 'a) -> '-> finally:('-> unit) -> 'a
  val read_wrap :
    ?binary:'-> f:'-> '-> [ `Deprecated_use_In_channel_with_file ]
  val write_wrap :
    ?binary:'-> f:'-> '-> [ `Deprecated_use_Out_channel_with_file ]
  val write_lines : '-> '-> [ `Deprecated_use_Out_channel_write_lines ]
  val input_lines :
    ?fix_win_eol:'-> '-> [ `Deprecated_use_In_channel_input_lines ]
  val read_lines : '-> [ `Deprecated_use_In_channel_read_lines ]
  val fst3 : 'a * 'b * '-> 'a
  val snd3 : 'b * 'a * '-> 'a
  val trd3 : 'b * 'c * '-> 'a
  val uw : 'a option -> 'a
  val is_none : 'a option -> bool
  val is_some : 'a option -> bool
  val ( |! ) : '-> ('-> 'b) -> 'b
  val ident : '-> 'a
  val const : '-> '-> 'a
  val ( ==> ) : bool -> bool -> bool
  external ascending : '-> '-> int = "%compare"
  val descending : '-> '-> int
  val ( ^/ ) : string -> string -> string
  val failwiths : string -> '-> ('-> Sexplib.Sexp.t) -> 'b
  val failwithf : ('r, unit, string, unit -> 'a) Pervasives.format4 -> 'r
  val invalid_argf : ('r, unit, string, unit -> 'a) Pervasives.format4 -> 'r
  val sexp_of_a : '-> Sexplib.Sexp.t
  val sexp_of_a1 : '-> Sexplib.Sexp.t
  val sexp_of_a2 : '-> Sexplib.Sexp.t
  val sexp_of_a3 : '-> Sexplib.Sexp.t
  val sexp_of_a4 : '-> Sexplib.Sexp.t
  val sexp_of_a5 : '-> Sexplib.Sexp.t
  val sexp_of_b : '-> Sexplib.Sexp.t
  val sexp_of_c : '-> Sexplib.Sexp.t
  val sexp_of_d : '-> Sexplib.Sexp.t
  val sexp_of_e : '-> Sexplib.Sexp.t
  type 'a return = private { return : 'b. '-> 'b; }
  val with_return : ('Common.return -> 'a) -> 'a
  val equal : '-> '-> bool
  val phys_equal : '-> '-> bool
  val ( == ) : '-> '-> [ `Consider_using_phys_equal ]
  val ( != ) : '-> '-> [ `Consider_using_phys_equal ]
  val force : 'Lazy.t -> 'a
  val seek_out : [ `Deprecated_use_out_channel ]
  val pos_out : [ `Deprecated_use_out_channel ]
  val out_channel_length : [ `Deprecated_use_out_channel ]
  val seek_in : [ `Deprecated_use_in_channel ]
  val pos_in : [ `Deprecated_use_in_channel ]
  val in_channel_length : [ `Deprecated_use_in_channel ]
  val modf : [ `Deprecated_use_float_modf ]
  val truncate : [ `Deprecated_use_float_iround_towards_zero ]
  val close_in : In_channel.t -> unit
  val close_out : Pervasives.out_channel -> unit
  val stage : '-> 'Staged.t
  val unstage : 'Staged.t -> 'a
  val ounit_tests : unit -> OUnit.test
end