sig
type t = {
file : string;
start_line : int;
start_column : int;
stop_line : int;
stop_column : int;
}
val mk : string -> int -> int -> int -> int -> Location.t
val mk_pair : string -> int * int -> int * int -> Location.t
val mk_pos : Lexing.position -> Lexing.position -> Location.t
val equal : t -> t -> bool
val hash_fun : t CCHash.hash_fun
val hash : t -> int
val combine : Location.t -> Location.t -> Location.t
val combine_list : Location.t list -> Location.t
val smaller : Location.t -> than:Location.t -> bool
val print : Format.formatter -> t -> unit
val to_string : Location.t -> string
val print_opt : Format.formatter -> Location.t option -> unit
val to_string_opt : Location.t option -> string
type 'a with_loc = { loc : Location.t option; value : 'a; }
val with_loc : ?loc:Location.t -> 'a -> 'a Location.with_loc
val get : 'a Location.with_loc -> 'a
val get_loc : 'a Location.with_loc -> Location.t option
val set_file : Lexing.lexbuf -> string -> unit
val get_file : Lexing.lexbuf -> string
val of_lexbuf : Lexing.lexbuf -> Location.t
end