sig   module LocationSetLattice :     sig       module O :         sig           type elt = Cil_types.location           type t           val empty : t           val is_empty : t -> bool           val mem : elt -> t -> bool           val add : elt -> 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 subset : t -> t -> bool           val iter : (elt -> unit) -> t -> unit           val fold : (elt -> '-> 'a) -> t -> '-> '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 choose : t -> elt           val split : elt -> t -> t * bool * t           val find : elt -> t -> elt           val of_list : elt list -> t           val min_elt : t -> elt           val max_elt : t -> elt           val nearest_elt_le : elt -> t -> elt           val nearest_elt_ge : elt -> t -> elt           val ty : t Type.t           val name : string           val descr : t Descr.t           val packed_descr : Structural_descr.pack           val reprs : t list           val equal : t -> t -> bool           val compare : t -> t -> int           val hash : t -> int           val pretty_code : Format.formatter -> t -> unit           val internal_pretty_code :             Type.precedence -> Format.formatter -> t -> unit           val pretty : Format.formatter -> t -> unit           val varname : t -> string           val mem_project : (Project_skeleton.t -> bool) -> t -> bool           val copy : t -> t         end       exception Error_Top       type t = private Set of O.t | Top       val ty : t Type.t       val name : string       val descr : t Descr.t       val packed_descr : Structural_descr.pack       val reprs : t list       val equal : t -> t -> bool       val hash : t -> int       val pretty_code : Format.formatter -> t -> unit       val internal_pretty_code :         Type.precedence -> Format.formatter -> t -> unit       val pretty : Format.formatter -> t -> unit       val varname : t -> string       val mem_project : (Project_skeleton.t -> bool) -> t -> bool       val copy : t -> t       val join : t -> t -> t       val is_included : t -> t -> bool       val join_and_is_included : t -> t -> t * bool       val bottom : t       val top : t       type widen_hint = O.t       val widen : widen_hint -> t -> t -> t       val cardinal_zero_or_one : t -> bool       val narrow : t -> t -> t       val link : t -> t -> t       val meet : t -> t -> t       val intersects : t -> t -> bool       val inject_singleton : O.elt -> t       val inject : O.t -> t       val empty : t       val apply2 : (O.elt -> O.elt -> O.elt) -> t -> t -> t       val apply1 : (O.elt -> O.elt) -> t -> t       val fold : (O.elt -> '-> 'a) -> t -> '-> 'a       val iter : (O.elt -> unit) -> t -> unit       val exists : (O.elt -> bool) -> t -> bool       val for_all : (O.elt -> bool) -> t -> bool       val project : t -> O.t       val mem : O.elt -> t -> bool       val currentloc_singleton : unit -> t       val compare : t -> t -> int     end   type origin =       Misalign_read of Origin.LocationSetLattice.t     | Leaf of Origin.LocationSetLattice.t     | Merge of Origin.LocationSetLattice.t     | Arith of Origin.LocationSetLattice.t     | Well     | Unknown   type t = origin   val ty : t Type.t   val name : string   val descr : t Descr.t   val packed_descr : Structural_descr.pack   val reprs : t list   val equal : t -> t -> bool   val compare : t -> t -> int   val hash : t -> int   val pretty_code : Format.formatter -> t -> unit   val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit   val pretty : Format.formatter -> t -> unit   val varname : t -> string   val mem_project : (Project_skeleton.t -> bool) -> t -> bool   val copy : t -> t   type kind = K_Misalign_read | K_Leaf | K_Merge | K_Arith   val current : Origin.kind -> Origin.origin   val pretty_as_reason : Format.formatter -> t -> unit   val top : t   val is_top : t -> bool   val bottom : t   val join : t -> t -> t   val meet : t -> t -> t   val narrow : t -> t -> t   val is_included : t -> t -> bool end