functor (Config : Config) (M : Abstract_memory.ProtoMemory->
  sig
    type t
    type submemory = M.t
    val pretty : Format.formatter -> t -> unit
    val hash : t -> int
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val raw : t -> Abstract_memory.Bit.t
    val of_raw : Abstract_memory.Bit.t -> t
    val weak_erase : Abstract_memory.Bit.t -> t -> t
    val is_included : t -> t -> bool
    val unify : (submemory -> submemory -> submemory) -> t -> t -> t
    val read : t -> Cil_types.fieldinfo -> submemory
    val update :
      (submemory -> submemory Lattice_bounds.or_bottom) ->
      t -> Cil_types.fieldinfo -> t Lattice_bounds.or_bottom
    val map : (submemory -> submemory) -> t -> t
  end