sig
  module type S = Location_intf.S
  type t = {
    file : string;
    start_line : int;
    start_column : int;
    stop_line : int;
    stop_column : int;
  }
  exception Uncaught of ParseLocation.t * exn
  exception Lexing_error of ParseLocation.t * string
  exception Syntax_error of ParseLocation.t * string
  val hash : ParseLocation.t -> int
  val eq : ParseLocation.t -> ParseLocation.t -> bool
  val mk : string -> int -> int -> int -> int -> ParseLocation.t
  val mk_pair : string -> int * int -> int * int -> ParseLocation.t
  val mk_pos : Lexing.position -> Lexing.position -> ParseLocation.t
  val pp : Buffer.t -> ParseLocation.t -> unit
  val fmt : Format.formatter -> ParseLocation.t -> unit
  val fmt_hint : Format.formatter -> ParseLocation.t -> unit
  val combine : ParseLocation.t -> ParseLocation.t -> ParseLocation.t
  val combine_list : ParseLocation.t list -> ParseLocation.t
  val smaller : ParseLocation.t -> ParseLocation.t -> bool
  val set_file : Lexing.lexbuf -> string -> unit
  val mk_lexbuf : [ `File of string | `Stdin ] -> Lexing.lexbuf
  val of_lexbuf : Lexing.lexbuf -> ParseLocation.t
end