sig   type value   type location   type offset   val equal_loc : location -> location -> bool   val equal_offset : offset -> offset -> bool   val pretty_loc : Format.formatter -> location -> unit   val pretty_offset : Format.formatter -> offset -> unit   val to_value : location -> value   val size : location -> Int_Base.t   val partially_overlap : location -> location -> bool   val check_non_overlapping :     (Cil_types.lval * location) list ->     (Cil_types.lval * location) list -> unit Eval.evaluated   val offset_cardinal_zero_or_one : offset -> bool   val no_offset : offset   val forward_field :     Cil_types.typ -> Cil_types.fieldinfo -> offset -> offset   val forward_index : Cil_types.typ -> value -> offset -> offset   val reduce_index_by_array_size :     size_expr:Cil_types.exp ->     index_expr:Cil_types.exp -> Integer.t -> value -> value Eval.evaluated   val forward_variable :     Cil_types.typ -> Cil_types.varinfo -> offset -> location Eval.or_bottom   val forward_pointer :     Cil_types.typ -> value -> offset -> location Eval.or_bottom   val eval_varinfo : Cil_types.varinfo -> location   val reduce_loc_by_validity :     for_writing:bool ->     bitfield:bool -> Cil_types.lval -> location -> location Eval.evaluated   val backward_variable :     Cil_types.varinfo -> location -> offset Eval.or_bottom   val backward_pointer :     value -> offset -> location -> (value * offset) Eval.or_bottom   val backward_field :     Cil_types.typ -> Cil_types.fieldinfo -> offset -> offset Eval.or_bottom   val backward_index :     Cil_types.typ ->     index:value ->     remaining:offset -> offset -> (value * offset) Eval.or_bottom   val structure : location Abstract_location.structure end