sig
  type bound = Segmentation.Bound.t
  type submemory
  type t
  val pretty : Stdlib.Format.formatter -> Segmentation.Segmentation.t -> unit
  val hash : Segmentation.Segmentation.t -> int
  val equal :
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t -> bool
  val compare :
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t -> int
  val hull :
    oracle:Abstract_memory.oracle ->
    Segmentation.Segmentation.t ->
    (Segmentation.Segmentation.bound * Segmentation.Segmentation.bound)
    Lattice_bounds.or_top
  val raw : Segmentation.Segmentation.t -> Abstract_memory.Bit.t
  val weak_erase :
    Abstract_memory.Bit.t ->
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t
  val is_included :
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t -> bool
  val unify :
    oracle:Abstract_memory.bioracle ->
    (Segmentation.Segmentation.submemory ->
     Segmentation.Segmentation.submemory ->
     Segmentation.Segmentation.submemory) ->
    Segmentation.Segmentation.t ->
    Segmentation.Segmentation.t ->
    Segmentation.Segmentation.t Lattice_bounds.or_top
  val single :
    Abstract_memory.bit ->
    Segmentation.Segmentation.bound ->
    Segmentation.Segmentation.bound ->
    Segmentation.Segmentation.submemory -> Segmentation.Segmentation.t
  val read :
    oracle:Abstract_memory.oracle ->
    (Segmentation.Segmentation.submemory -> 'a) ->
    ('-> '-> 'a) ->
    Segmentation.Segmentation.t ->
    Segmentation.Segmentation.bound -> Segmentation.Segmentation.bound -> 'a
  val update :
    oracle:Abstract_memory.oracle ->
    (Segmentation.Segmentation.submemory ->
     Segmentation.Segmentation.submemory Lattice_bounds.or_bottom) ->
    Segmentation.Segmentation.t ->
    Segmentation.Segmentation.bound ->
    Segmentation.Segmentation.bound ->
    Segmentation.Segmentation.t Lattice_bounds.or_top_bottom
  val incr_bound :
    oracle:Abstract_memory.oracle ->
    Cil_types.varinfo ->
    Integer.t option ->
    Segmentation.Segmentation.t ->
    Segmentation.Segmentation.t Lattice_bounds.or_top
  val map :
    (Segmentation.Segmentation.submemory ->
     Segmentation.Segmentation.submemory) ->
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t
  val fold :
    (Segmentation.Segmentation.submemory -> '-> 'a) ->
    (Abstract_memory.bit -> '-> 'a) ->
    Segmentation.Segmentation.t -> '-> 'a
  val add_segmentation_bounds :
    oracle:Abstract_memory.oracle ->
    Segmentation.Segmentation.bound list ->
    Segmentation.Segmentation.t -> Segmentation.Segmentation.t
end