sig   type t = {     loc_start : Lexing.position;     loc_end : Lexing.position;     loc_ghost : bool;   }   val none : Location.t   val in_file : string -> Location.t   val init : Lexing.lexbuf -> string -> unit   val curr : Lexing.lexbuf -> Location.t   val symbol_rloc : unit -> Location.t   val symbol_gloc : unit -> Location.t   val rhs_loc : int -> Location.t   val input_name : string Pervasives.ref   val input_lexbuf : Lexing.lexbuf option Pervasives.ref   val get_pos_info : Lexing.position -> string * int * int   val print_loc : Format.formatter -> Location.t -> unit   val print_error : Format.formatter -> Location.t -> unit   val print_error_cur_file : Format.formatter -> unit -> unit   val print_warning : Location.t -> Format.formatter -> Warnings.t -> unit   val formatter_for_warnings : Format.formatter Pervasives.ref   val prerr_warning : Location.t -> Warnings.t -> unit   val echo_eof : unit -> unit   val reset : unit -> unit   val warning_printer :     (Location.t -> Format.formatter -> Warnings.t -> unit) Pervasives.ref   val default_warning_printer :     Location.t -> Format.formatter -> Warnings.t -> unit   val highlight_locations : Format.formatter -> Location.t list -> bool   type 'a loc = { txt : 'a; loc : Location.t; }   val mknoloc : '-> 'Location.loc   val mkloc : '-> Location.t -> 'Location.loc   val print : Format.formatter -> Location.t -> unit   val print_compact : Format.formatter -> Location.t -> unit   val print_filename : Format.formatter -> string -> unit   val absolute_path : string -> string   val show_filename : string -> string   val absname : bool Pervasives.ref   type error = {     loc : Location.t;     msg : string;     sub : Location.error list;     if_highlight : string;   }   exception Error of Location.error   val print_error_prefix : Format.formatter -> unit -> unit   val error :     ?loc:Location.t ->     ?sub:Location.error list ->     ?if_highlight:string -> string -> Location.error   val errorf :     ?loc:Location.t ->     ?sub:Location.error list ->     ?if_highlight:string ->     ('a, Format.formatter, unit, Location.error) Pervasives.format4 -> 'a   val errorf_prefixed :     ?loc:Location.t ->     ?sub:Location.error list ->     ?if_highlight:string ->     ('a, Format.formatter, unit, Location.error) Pervasives.format4 -> 'a   val raise_errorf :     ?loc:Location.t ->     ?sub:Location.error list ->     ?if_highlight:string ->     ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a   val error_of_printer :     Location.t -> (Format.formatter -> '-> unit) -> '-> Location.error   val error_of_printer_file :     (Format.formatter -> '-> unit) -> '-> Location.error   val error_of_exn : exn -> Location.error option   val register_error_of_exn : (exn -> Location.error option) -> unit   val report_error : Format.formatter -> Location.error -> unit   val error_reporter :     (Format.formatter -> Location.error -> unit) Pervasives.ref   val default_error_reporter : Format.formatter -> Location.error -> unit   val report_exception : Format.formatter -> exn -> unit end