`sig val to_string : exn -> string val print : ('a -> 'b) -> 'a -> 'b val catch : ('a -> 'b) -> 'a -> 'b val print_backtrace : Pervasives.out_channel -> unit val get_backtrace : unit -> string val record_backtrace : bool -> unit val backtrace_status : unit -> bool val register_printer : (exn -> string option) -> unit type raw_backtrace val get_raw_backtrace : unit -> Printexc.raw_backtrace val print_raw_backtrace : Pervasives.out_channel -> Printexc.raw_backtrace -> unit val raw_backtrace_to_string : Printexc.raw_backtrace -> string val get_callstack : int -> Printexc.raw_backtrace val set_uncaught_exception_handler : (exn -> Printexc.raw_backtrace -> unit) -> unit type backtrace_slot val backtrace_slots : Printexc.raw_backtrace -> Printexc.backtrace_slot array option type location = { filename : string; line_number : int; start_char : int; end_char : int; } module Slot : sig type t = Printexc.backtrace_slot val is_raise : Printexc.Slot.t -> bool val location : Printexc.Slot.t -> Printexc.location option val format : int -> Printexc.Slot.t -> string option end type raw_backtrace_slot val raw_backtrace_length : Printexc.raw_backtrace -> int val get_raw_backtrace_slot : Printexc.raw_backtrace -> int -> Printexc.raw_backtrace_slot val convert_raw_backtrace_slot : Printexc.raw_backtrace_slot -> Printexc.backtrace_slot val exn_slot_id : exn -> int val exn_slot_name : exn -> string end`