sig
  type y
  type loffset
  type widen_hint_offsetmap
  module Make :
    functor
      (Default_offsetmap : sig
                             val default_offsetmap :
                               Base.t -> Lmap.Location_map.loffset
                           end->
      sig
        type t
        type widen_hint =
            bool * BaseUtils.BaseSet.t *
            (Base.t -> Lmap.Location_map.widen_hint_offsetmap)
        type instanciation = Locations.Location_Bytes.t BaseUtils.BaseMap.t
        module Datatype :
          sig
            type t = t
            val rehash : t -> t
            val descr : Unmarshal.t
            val copy : t -> t
            val name : string
            val register_comparable :
              ?compare:(t -> t -> int) ->
              ?equal:(t -> t -> bool) ->
              ?hash:(t -> int) -> ?physical_hash:(t -> int) -> unit -> unit
            val is_comparable_set : unit -> bool
            val hash : t -> int
            val physical_hash : t -> int
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val contain_project : (Project.project -> t -> bool) option ref
          end
        val inject :
          Base.t -> Lmap.Location_map.loffset -> Lmap.Location_map.Make.t
        val add_offsetmap :
          Base.t ->
          Lmap.Location_map.loffset ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val pretty : Format.formatter -> Lmap.Location_map.Make.t -> unit
        val pretty_without_null :
          Format.formatter -> Lmap.Location_map.Make.t -> unit
        val pretty_filter :
          Format.formatter ->
          Lmap.Location_map.Make.t ->
          Locations.Zone.t -> (Base.t -> bool) -> unit
        val add_binding :
          with_alarms:CilE.warn_mode ->
          exact:bool ->
          Lmap.Location_map.Make.t ->
          Locations.location ->
          Lmap.Location_map.y -> Lmap.Location_map.Make.t
        val find :
          with_alarms:CilE.warn_mode ->
          Lmap.Location_map.Make.t ->
          Locations.location -> Lmap.Location_map.y
        val join :
          Lmap.Location_map.Make.t ->
          Lmap.Location_map.Make.t ->
          Locations.location list * Lmap.Location_map.Make.t
        val is_included :
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t -> bool
        val equal :
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t -> bool
        val hash : Lmap.Location_map.Make.t -> int
        val is_included_actual_generic :
          Locations.Zone.t ->
          Lmap.Location_map.Make.t ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.instanciation
        val empty : Lmap.Location_map.Make.t
        val is_empty : Lmap.Location_map.Make.t -> bool
        val bottom : Lmap.Location_map.Make.t
        val is_reachable : Lmap.Location_map.Make.t -> bool
        val widen :
          Lmap.Location_map.Make.widen_hint ->
          Lmap.Location_map.Make.t ->
          Lmap.Location_map.Make.t -> bool * Lmap.Location_map.Make.t
        val filter_base :
          (Base.t -> bool) ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val find_base :
          Base.t -> Lmap.Location_map.Make.t -> Lmap.Location_map.loffset
        val remove_base :
          Base.t -> Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val reduce_binding :
          with_alarms:CilE.warn_mode ->
          Lmap.Location_map.Make.t ->
          Locations.location ->
          Lmap.Location_map.y -> Lmap.Location_map.Make.t
        val copy_paste :
          Locations.location ->
          Locations.location ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val paste_offsetmap :
          Lmap.Location_map.loffset ->
          Locations.Location_Bits.t ->
          Abstract_interp.Int.t ->
          Abstract_interp.Int.t ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val copy_offsetmap :
          Locations.location ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.loffset option
        val compute_actual_final_from_generic :
          Lmap.Location_map.Make.t ->
          Lmap.Location_map.Make.t ->
          Locations.Zone.t ->
          Lmap.Location_map.Make.instanciation ->
          Lmap.Location_map.Make.t * Locations.Location_Bits.Top_Param.t
        val is_included_by_location_enum :
          Lmap.Location_map.Make.t ->
          Lmap.Location_map.Make.t -> Locations.Zone.t -> bool
        val fold :
          size:Abstract_interp.Int.t ->
          (Locations.location -> Lmap.Location_map.y -> '-> 'a) ->
          Lmap.Location_map.Make.t -> '-> 'a
        val fold_single_bindings :
          size:Abstract_interp.Int.t ->
          (Locations.location -> Lmap.Location_map.y -> '-> 'a) ->
          Lmap.Location_map.Make.t -> '-> 'a
        val fold_base :
          (Base.t -> '-> 'a) -> Lmap.Location_map.Make.t -> '-> 'a
        val fold_base_offsetmap :
          (Base.t -> Lmap.Location_map.loffset -> '-> 'a) ->
          Lmap.Location_map.Make.t -> '-> 'a
        val find_offsetmap_for_location :
          Locations.Location_Bits.t ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.loffset
        val add_whole :
          Locations.location ->
          Lmap.Location_map.y ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val remove_whole :
          Locations.location ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        val reciprocal_image :
          Base.t ->
          Lmap.Location_map.Make.t ->
          Locations.Zone.t * Locations.Location_Bits.t
        val create_initial :
          base:Base.t ->
          v:Lmap.Location_map.y ->
          modu:Abstract_interp.Int.t ->
          state:Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
        exception Error_Bottom
        val cached_fold :
          f:(Base.t -> Lmap.Location_map.loffset -> 'a) ->
          cache:string * int ->
          joiner:('-> '-> 'a) ->
          empty:'-> Lmap.Location_map.Make.t -> 'a
        val cached_map :
          f:(Base.t -> Lmap.Location_map.loffset -> Lmap.Location_map.loffset) ->
          cache:string * int ->
          Lmap.Location_map.Make.t -> Lmap.Location_map.Make.t
      end
end