sig
  type t
  type submemory
  type structure
  val pretty :
    Stdlib.Format.formatter -> Abstract_structure.Disjunction.t -> unit
  val hash : Abstract_structure.Disjunction.t -> int
  val equal :
    Abstract_structure.Disjunction.t ->
    Abstract_structure.Disjunction.t -> bool
  val compare :
    Abstract_structure.Disjunction.t ->
    Abstract_structure.Disjunction.t -> int
  val raw : Abstract_structure.Disjunction.t -> Abstract_memory.Bit.t
  val of_raw :
    Cil_types.compinfo ->
    Abstract_memory.Bit.t -> Abstract_structure.Disjunction.t
  val of_struct :
    Cil_types.compinfo ->
    Abstract_structure.Disjunction.structure ->
    Abstract_structure.Disjunction.t
  val to_struct :
    oracle:Abstract_memory.oracle ->
    Abstract_structure.Disjunction.t ->
    Abstract_structure.Disjunction.structure
  val weak_erase :
    Cil_types.compinfo ->
    Abstract_memory.Bit.t ->
    Abstract_structure.Disjunction.t -> Abstract_structure.Disjunction.t
  val is_included :
    Abstract_structure.Disjunction.t ->
    Abstract_structure.Disjunction.t -> bool
  val unify :
    oracle:Abstract_memory.bioracle ->
    (Abstract_structure.Disjunction.submemory ->
     Abstract_structure.Disjunction.submemory ->
     Abstract_structure.Disjunction.submemory) ->
    Abstract_structure.Disjunction.t ->
    Abstract_structure.Disjunction.t -> Abstract_structure.Disjunction.t
  val read :
    (Abstract_structure.Disjunction.submemory -> 'a) ->
    ('-> '-> 'a) ->
    Abstract_structure.Disjunction.t -> Cil_types.fieldinfo -> 'a
  val update :
    oracle:Abstract_memory.oracle ->
    (Abstract_structure.Disjunction.submemory ->
     Abstract_structure.Disjunction.submemory Lattice_bounds.or_bottom) ->
    Abstract_structure.Disjunction.t ->
    Cil_types.fieldinfo ->
    Abstract_structure.Disjunction.t Lattice_bounds.or_bottom
  val map :
    (Abstract_structure.Disjunction.submemory ->
     Abstract_structure.Disjunction.submemory) ->
    Abstract_structure.Disjunction.t -> Abstract_structure.Disjunction.t
end