sig
  exception Bug of string
  exception Finally of exn * exn
  val unimplemented : string -> 'Or_error.t
  type decimal = float
  type passfail = Pass | Fail of string
  type read_only
  type immutable = private Common.read_only
  type read_write = private Common.read_only
  type never_returns = Common0.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 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___ : '-> 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 ] ->
    [ `Consider_using_phys_equal ] -> [ `Consider_using_phys_equal ]
  val ( != ) :
    [ `Consider_using_phys_equal ] ->
    [ `Consider_using_phys_equal ] -> [ `Consider_using_phys_equal ]
  val force : 'Lazy.t -> 'a
  val seek_out :
    [ `Deprecated_use_out_channel ] ->
    [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ]
  val pos_out :
    [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ]
  val out_channel_length :
    [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ]
  val seek_in :
    [ `Deprecated_use_in_channel ] ->
    [ `Deprecated_use_in_channel ] -> [ `Deprecated_use_in_channel ]
  val pos_in :
    [ `Deprecated_use_in_channel ] -> [ `Deprecated_use_in_channel ]
  val in_channel_length :
    [ `Deprecated_use_in_channel ] -> [ `Deprecated_use_in_channel ]
  val modf : [ `Deprecated_use_float_modf ] -> [ `Deprecated_use_float_modf ]
  val truncate :
    [ `Deprecated_use_float_iround_towards_zero ] ->
    [ `Deprecated_use_float_iround_towards_zero ]
  val close_in :
    [ `Deprecated_use_in_channel ] -> [ `Deprecated_use_in_channel ]
  val close_out :
    [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ]
  val stage : '-> 'Staged.t
  val unstage : 'Staged.t -> 'a
  exception C_malloc_exn of int * int
  val ( & ) :
    [ `Deprecated_use_two_ampersands ] ->
    [ `Deprecated_use_two_ampersands ] -> [ `Deprecated_use_two_ampersands ]
  val max_int : [ `Deprecated_use_int_module ]
  val min_int : [ `Deprecated_use_int_module ]
  val ceil :
    [ `Deprecated_use__Float__round_up ] ->
    [ `Deprecated_use__Float__round_up ]
  val floor :
    [ `Deprecated_use__Float__round_down ] ->
    [ `Deprecated_use__Float__round_down ]
  val abs_float :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val mod_float :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val frexp :
    [ `Deprecated_use_float_module ] ->
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val ldexp :
    [ `Deprecated_use_float_module ] ->
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val float_of_int :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val max_float : [ `Deprecated_use_float_module ]
  val min_float : [ `Deprecated_use_float_module ]
  val epsilon_float : [ `Deprecated_use_float_module ]
  val classify_float :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val string_of_float :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val float_of_string :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  val infinity : [ `Deprecated_use_float_module ]
  val neg_infinity : [ `Deprecated_use_float_module ]
  val int_of_float :
    [ `Deprecated_use_float_module ] -> [ `Deprecated_use_float_module ]
  type fpclass = [ `Deprecated_use_float_module ]
  val decimal_of_sexp : Sexplib.Sexp.t -> Common.decimal
  val sexp_of_decimal : Common.decimal -> Sexplib.Sexp.t
  val bin_decimal : Common.decimal Bin_prot.Type_class.t
  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_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 compare_read_only : Common.read_only -> Common.read_only -> int
  val bin_read_only : Common.read_only Bin_prot.Type_class.t
  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_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 read_only_of_sexp : Sexplib.Sexp.t -> Common.read_only
  val sexp_of_read_only : Common.read_only -> Sexplib.Sexp.t
  val compare_immutable : Common.immutable -> Common.immutable -> int
  val bin_immutable : Common.immutable Bin_prot.Type_class.t
  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_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 immutable_of_sexp : Sexplib.Sexp.t -> Common.immutable
  val sexp_of_immutable : Common.immutable -> Sexplib.Sexp.t
  val compare_read_write : Common.read_write -> Common.read_write -> int
  val bin_read_write : Common.read_write Bin_prot.Type_class.t
  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_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 read_write_of_sexp : Sexplib.Sexp.t -> Common.read_write
  val sexp_of_read_write : Common.read_write -> Sexplib.Sexp.t
  val ounit_tests : unit -> OUnit.test
end