sig
  type precise_offset
  val pretty_offset : Format.formatter -> Precise_locs.precise_offset -> unit
  val equal_offset :
    Precise_locs.precise_offset -> Precise_locs.precise_offset -> bool
  val offset_zero : Precise_locs.precise_offset
  val offset_bottom : Precise_locs.precise_offset
  val offset_top : Precise_locs.precise_offset
  val inject_ival : Ival.t -> Precise_locs.precise_offset
  val is_bottom_offset : Precise_locs.precise_offset -> bool
  val imprecise_offset : Precise_locs.precise_offset -> Ival.t
  val shift_offset_by_singleton :
    Integer.t -> Precise_locs.precise_offset -> Precise_locs.precise_offset
  val shift_offset :
    Ival.t -> Precise_locs.precise_offset -> Precise_locs.precise_offset
  type precise_location_bits
  val pretty_loc_bits :
    Format.formatter -> Precise_locs.precise_location_bits -> unit
  val bottom_location_bits : Precise_locs.precise_location_bits
  val inject_location_bits :
    Locations.Location_Bits.t -> Precise_locs.precise_location_bits
  val combine_base_precise_offset :
    Base.t ->
    Precise_locs.precise_offset -> Precise_locs.precise_location_bits
  val combine_loc_precise_offset :
    Locations.Location_Bits.t ->
    Precise_locs.precise_offset -> Precise_locs.precise_location_bits
  val imprecise_location_bits :
    Precise_locs.precise_location_bits -> Locations.Location_Bits.t
  type precise_location
  val equal_loc :
    Precise_locs.precise_location -> Precise_locs.precise_location -> bool
  val loc_size : Precise_locs.precise_location -> Int_Base.t
  val make_precise_loc :
    Precise_locs.precise_location_bits ->
    size:Int_Base.t -> Precise_locs.precise_location
  val imprecise_location :
    Precise_locs.precise_location -> Locations.location
  val loc_bottom : Precise_locs.precise_location
  val is_bottom_loc : Precise_locs.precise_location -> bool
  val loc_top : Precise_locs.precise_location
  val is_top_loc : Precise_locs.precise_location -> bool
  val fold :
    (Locations.location -> '-> 'a) ->
    Precise_locs.precise_location -> '-> 'a
  val enumerate_valid_bits :
    for_writing:bool -> Precise_locs.precise_location -> Locations.Zone.t
  val valid_cardinal_zero_or_one :
    for_writing:bool -> Precise_locs.precise_location -> bool
  val cardinal_zero_or_one : Precise_locs.precise_location -> bool
  val pretty_loc : Precise_locs.precise_location Pretty_utils.formatter
  val valid_part :
    for_writing:bool ->
    bitfield:bool ->
    Precise_locs.precise_location -> Precise_locs.precise_location
end