sig
module Loc :
sig
type t
val create : unit -> Location.Loc.t
val compare : Location.Loc.t -> Location.Loc.t -> int
val string_of : Location.Loc.t -> string
val from_int : int -> Location.Loc.t
val reset : unit -> unit
end
module type LSET =
sig
type elt = Loc.t
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val add_list : elt list -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val choose' : t -> elt option
val split : elt -> t -> t * bool * t
val from_list : elt list -> t
val string_of : t -> string
val string_of_complex :
?start_char:string -> ?end_char:string -> t -> string
end
module LSet : LSET
module LSetRef :
sig
type t
type elt = Loc.t
val create : unit -> t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> unit
val add_list : elt list -> t -> unit
val singleton : elt -> t
val remove : elt -> t -> unit
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> unit
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val from_list : elt list -> t
val string_of : t -> string
val string_of_complex :
?start_char:string -> ?end_char:string -> t -> string
val lset : t -> LSet.t
end
module P :
sig
type t
val create_exact : unit -> Location.P.t
val create_inexact : unit -> Location.P.t
val string_of : Location.P.t -> string
val get_location : Location.P.t -> Location.Loc.t
val is_precise : Location.P.t -> bool
val reset : unit -> unit
end
val reset_all : unit -> unit
module LSetInEx :
sig
type elm = LSet.t
type t =
[ `Lower of elm
| `LowerNeg of elm * elm
| `LowerUpper of elm * elm
| `Neg of elm
| `Upper of elm ]
val create_lower : elm -> t
val create_upper : elm -> t
val create_neg : elm -> t
val create_lowerupper : elm -> elm -> t
val create_lowerneg : elm -> elm -> t
val compare : t -> t -> int
val merge : t -> t -> t
val get_exact : t -> elm option
val string_of : t -> string
end
end