sig type t = Warnings.loc = { loc_start : Stdlib.Lexing.position; loc_end : Stdlib.Lexing.position; loc_ghost : bool; } val none : Location.t val is_none : Location.t -> bool val in_file : string -> Location.t val init : Stdlib.Lexing.lexbuf -> string -> unit val curr : Stdlib.Lexing.lexbuf -> Location.t val symbol_rloc : unit -> Location.t val symbol_gloc : unit -> Location.t val rhs_loc : int -> Location.t val rhs_interval : int -> int -> Location.t val get_pos_info : Stdlib.Lexing.position -> string * int * int type 'a loc = { txt : 'a; loc : Location.t; } val mknoloc : 'a -> 'a Location.loc val mkloc : 'a -> Location.t -> 'a Location.loc val input_name : string Stdlib.ref val input_lexbuf : Stdlib.Lexing.lexbuf option Stdlib.ref val input_phrase_buffer : Stdlib.Buffer.t option Stdlib.ref val echo_eof : unit -> unit val reset : unit -> unit val rewrite_absolute_path : string -> string val absolute_path : string -> string val show_filename : string -> string val print_filename : Stdlib.Format.formatter -> string -> unit val print_loc : Stdlib.Format.formatter -> Location.t -> unit val print_locs : Stdlib.Format.formatter -> Location.t list -> unit val highlight_terminfo : Stdlib.Lexing.lexbuf -> Stdlib.Format.formatter -> Location.t list -> unit type msg = (Stdlib.Format.formatter -> unit) Location.loc val msg : ?loc:Location.t -> ('a, Stdlib.Format.formatter, unit, Location.msg) Stdlib.format4 -> 'a type report_kind = Report_error | Report_warning of string | Report_warning_as_error of string | Report_alert of string | Report_alert_as_error of string type report = { kind : Location.report_kind; main : Location.msg; sub : Location.msg list; } type report_printer = { pp : Location.report_printer -> Stdlib.Format.formatter -> Location.report -> unit; pp_report_kind : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> Location.report_kind -> unit; pp_main_loc : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> Location.t -> unit; pp_main_txt : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> (Stdlib.Format.formatter -> unit) -> unit; pp_submsgs : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> Location.msg list -> unit; pp_submsg : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> Location.msg -> unit; pp_submsg_loc : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> Location.t -> unit; pp_submsg_txt : Location.report_printer -> Location.report -> Stdlib.Format.formatter -> (Stdlib.Format.formatter -> unit) -> unit; } val batch_mode_printer : Location.report_printer val terminfo_toplevel_printer : Stdlib.Lexing.lexbuf -> Location.report_printer val best_toplevel_printer : unit -> Location.report_printer val print_report : Stdlib.Format.formatter -> Location.report -> unit val report_printer : (unit -> Location.report_printer) Stdlib.ref val default_report_printer : unit -> Location.report_printer val report_warning : Location.t -> Warnings.t -> Location.report option val warning_reporter : (Location.t -> Warnings.t -> Location.report option) Stdlib.ref val default_warning_reporter : Location.t -> Warnings.t -> Location.report option val formatter_for_warnings : Stdlib.Format.formatter Stdlib.ref val print_warning : Location.t -> Stdlib.Format.formatter -> Warnings.t -> unit val prerr_warning : Location.t -> Warnings.t -> unit val report_alert : Location.t -> Warnings.alert -> Location.report option val alert_reporter : (Location.t -> Warnings.alert -> Location.report option) Stdlib.ref val default_alert_reporter : Location.t -> Warnings.alert -> Location.report option val print_alert : Location.t -> Stdlib.Format.formatter -> Warnings.alert -> unit val prerr_alert : Location.t -> Warnings.alert -> unit val deprecated : ?def:Location.t -> ?use:Location.t -> Location.t -> string -> unit val alert : ?def:Location.t -> ?use:Location.t -> kind:string -> Location.t -> string -> unit type error = Location.report val error : ?loc:Location.t -> ?sub:Location.msg list -> string -> Location.error val errorf : ?loc:Location.t -> ?sub:Location.msg list -> ('a, Stdlib.Format.formatter, unit, Location.error) Stdlib.format4 -> 'a val error_of_printer : ?loc:Location.t -> ?sub:Location.msg list -> (Stdlib.Format.formatter -> 'a -> unit) -> 'a -> Location.error val error_of_printer_file : (Stdlib.Format.formatter -> 'a -> unit) -> 'a -> Location.error val register_error_of_exn : (exn -> Location.error option) -> unit val error_of_exn : exn -> [ `Already_displayed | `Ok of Location.error ] option exception Error of Location.error exception Already_displayed_error val raise_errorf : ?loc:Location.t -> ?sub:Location.msg list -> ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a val report_exception : Stdlib.Format.formatter -> exn -> unit end