sig
  type y = V_Or_Uninitialized.t
  type loffset = V_Offsetmap_ext.t
  type widen_hint_offsetmap = V_Or_Uninitialized.widen_hint
  module Make :
    functor
      (Default_offsetmap : sig val default_offsetmap : Base.t -> loffset end->
      sig
        module LBase :
          sig
            type t =
                Lmap.Make_LOffset(V_Or_Uninitialized)(V_Offsetmap_ext).Make(Default_offsetmap).LBase.t
            val iter : (Base.base -> loffset -> unit) -> t -> unit
          end
        type tt =
          Lmap.Make_LOffset(V_Or_Uninitialized)(V_Offsetmap_ext).Make(Default_offsetmap).tt = private
            Bottom
          | Top
          | Map of LBase.t
        type t = tt
        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 widen_hint =
            bool * Base.Set.t * (Base.t -> widen_hint_offsetmap)
        val inject : Base.t -> loffset -> t
        val add_offsetmap : Base.t -> loffset -> t -> t
        val pretty_without_null : Format.formatter -> t -> unit
        val pretty_filter :
          Format.formatter ->
          t -> Locations.Zone.t -> (Base.t -> bool) -> unit
        val add_binding :
          with_alarms:CilE.warn_mode ->
          exact:bool -> t -> Locations.location -> y -> t
        val find :
          conflate_bottom:bool ->
          with_alarms:CilE.warn_mode -> t -> Locations.location -> y
        val join : t -> t -> Locations.location list * t
        val is_included : t -> t -> bool
        val top : t
        val is_top : t -> bool
        val empty_map : t
        val is_empty_map : t -> bool
        val bottom : t
        val is_reachable : t -> bool
        val widen : widen_hint -> t -> t -> bool * t
        val filter_base : (Base.t -> bool) -> t -> t
        val find_base : Base.t -> t -> loffset
        val remove_base : Base.t -> t -> t
        val reduce_binding :
          with_alarms:CilE.warn_mode -> t -> Locations.location -> y -> t
        val copy_paste :
          with_alarms:CilE.warn_mode ->
          Locations.location -> Locations.location -> t -> t
        val paste_offsetmap :
          with_alarms:CilE.warn_mode ->
          from:loffset ->
          dst_loc:Locations.Location_Bits.t ->
          start:Abstract_interp.Int.t ->
          size:Abstract_interp.Int.t -> exact:bool -> t -> t
        val copy_offsetmap :
          with_alarms:CilE.warn_mode ->
          Locations.location -> t -> loffset option
        val is_included_by_location_enum : t -> t -> Locations.Zone.t -> bool
        val fold :
          size:Abstract_interp.Int.t ->
          (Locations.location -> y -> '-> 'a) -> t -> '-> 'a
        val fold_single_bindings :
          size:Abstract_interp.Int.t ->
          (Locations.location -> y -> '-> 'a) -> t -> '-> 'a
        val fold_base : (Base.t -> '-> 'a) -> t -> '-> 'a
        val fold_base_offsetmap :
          (Base.t -> loffset -> '-> 'a) -> t -> '-> 'a
        val find_offsetmap_for_location :
          Locations.Location_Bits.t -> t -> loffset
        val add_whole : Locations.location -> y -> t -> t
        val remove_whole : Locations.location -> t -> t
        val comp_prefixes : t -> t -> unit
        type subtree =
            Lmap.Make_LOffset(V_Or_Uninitialized)(V_Offsetmap_ext).Make(Default_offsetmap).subtree
        val find_prefix : t -> Hptmap.prefix -> subtree option
        val hash_subtree : subtree -> int
        val equal_subtree : subtree -> subtree -> bool
        val reciprocal_image :
          Base.t -> t -> Locations.Zone.t * Locations.Location_Bits.t
        val create_initial :
          base:Base.t -> v:y -> modu:Abstract_interp.Int.t -> state:t -> t
        exception Error_Bottom
        val cached_fold :
          f:(Base.t -> loffset -> 'a) ->
          cache:string * int ->
          temporary:bool -> joiner:('-> '-> 'a) -> empty:'-> t -> 'a
        val cached_map :
          f:(Base.t -> loffset -> loffset) ->
          cache:string * int -> temporary:bool -> t -> t
        exception Found_prefix of Hptmap.prefix * subtree * subtree
      end
end