sig
  val pass : ('-> 'b) -> '-> 'b
  val catch : ('-> 'b) -> '-> 'b
  val to_string : exn -> string
  val print_backtrace : 'BatInnerIO.output -> unit
  val get_backtrace : unit -> string
  val record_backtrace : bool -> unit
  val backtrace_status : unit -> bool
  val register_printer : (exn -> string option) -> unit
  val print : 'BatInnerIO.output -> exn -> unit
  external raise_with_backtrace : exn -> Stdlib.Printexc.raw_backtrace -> 'a
    = "%raise_with_backtrace"
  type raw_backtrace = Stdlib.Printexc.raw_backtrace
  val get_raw_backtrace : unit -> BatPrintexc.raw_backtrace
  val print_raw_backtrace :
    Stdlib.out_channel -> BatPrintexc.raw_backtrace -> unit
  val raw_backtrace_to_string : BatPrintexc.raw_backtrace -> string
  external get_callstack : int -> BatPrintexc.raw_backtrace
    = "caml_get_current_callstack"
  val default_uncaught_exception_handler :
    exn -> BatPrintexc.raw_backtrace -> unit
  val set_uncaught_exception_handler :
    (exn -> BatPrintexc.raw_backtrace -> unit) -> unit
  type backtrace_slot = Stdlib.Printexc.backtrace_slot
  val backtrace_slots :
    BatPrintexc.raw_backtrace -> BatPrintexc.backtrace_slot array option
  type location =
    Stdlib.Printexc.location = {
    filename : string;
    line_number : int;
    start_char : int;
    end_char : int;
  }
  module Slot :
    sig
      type t = BatPrintexc.backtrace_slot
      val is_raise : BatPrintexc.Slot.t -> bool
      val is_inline : BatPrintexc.Slot.t -> bool
      val location : BatPrintexc.Slot.t -> BatPrintexc.location option
      val name : BatPrintexc.Slot.t -> string option
      val format : int -> BatPrintexc.Slot.t -> string option
    end
  type raw_backtrace_slot = Stdlib.Printexc.raw_backtrace_slot
  val raw_backtrace_length : BatPrintexc.raw_backtrace -> int
  val get_raw_backtrace_slot :
    BatPrintexc.raw_backtrace -> int -> BatPrintexc.raw_backtrace_slot
  val convert_raw_backtrace_slot :
    BatPrintexc.raw_backtrace_slot -> BatPrintexc.backtrace_slot
  val get_raw_backtrace_next_slot :
    BatPrintexc.raw_backtrace_slot -> BatPrintexc.raw_backtrace_slot option
  val exn_slot_id : exn -> int
  val exn_slot_name : exn -> string
  type t = exn = ..
  val use_printers : exn -> string option
  val to_string_default : exn -> string
  type raw_backtrace_entry = Stdlib.Printexc.raw_backtrace_entry
  val raw_backtrace_entries :
    BatPrintexc.raw_backtrace -> BatPrintexc.raw_backtrace_entry array
  val backtrace_slots_of_raw_entry :
    BatPrintexc.raw_backtrace_entry ->
    BatPrintexc.backtrace_slot array option
end