sig   module type Conversion =     sig       type extended_value       type internal_value       val extend_val :         Location_lift.Conversion.internal_value ->         Location_lift.Conversion.extended_value       val restrict_val :         Location_lift.Conversion.extended_value ->         Location_lift.Conversion.internal_value     end   module Make :     functor       (Loc : Abstract_location.Internal) (Convert : sig                                                       type extended_value                                                       val extend_val :                                                         Loc.value ->                                                         extended_value                                                       val restrict_val :                                                         extended_value ->                                                         Loc.value                                                     end->       sig         type value = Convert.extended_value         type location = Loc.location         type offset = Loc.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 end