123456789101112131415161718192021222324252627282930313233moduletypeIntf=sigtypet={exn:exn;bt:Printexc.raw_backtrace}(** An exception and a backtrace. *)valget:exn->t(** [get exn] is equivalent to
[{ exn; bt = Printexc.get_raw_backtrace () }]. *)valget_callstack:int->exn->t(** [get_callstack n exn] is equivalent to
[{ exn; bt = Printexc.get_callstack n }].
Note that [Printexc.get_callstack 0] effectively returns a constant value
and this function is optimized to take that into account. *)valraise:t->'a(** [raise exn_bt] is equivalent to
[Printexc.raise_with_backtrace exn_bt.exn exn_bt.bt]. *)endtypet={exn:exn;bt:Printexc.raw_backtrace}letgetexn=letbt=Printexc.get_raw_backtrace()in{exn;bt}letempty_backtrace=Printexc.get_callstack0letget_callstacknexn=letbt=ifn<=0thenempty_backtraceelsePrintexc.get_callstacknin{exn;bt}letraiset=Printexc.raise_with_backtracet.exnt.bt