functor (Config : Config) (Value : Value->
  sig
    type location = Abstract_offset.t
    type value = Typed_memory.Value.t
    type t
    val hash : Typed_memory.Make.t -> int
    val equal : Typed_memory.Make.t -> Typed_memory.Make.t -> bool
    val compare : Typed_memory.Make.t -> Typed_memory.Make.t -> int
    val top : Typed_memory.Make.t
    val zero : Typed_memory.Make.t
    val is_top : Typed_memory.Make.t -> bool
    val get :
      oracle:Abstract_memory.oracle ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location -> Typed_memory.Make.value
    val extract :
      oracle:Abstract_memory.oracle ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location -> Typed_memory.Make.t
    val erase :
      oracle:Abstract_memory.oracle ->
      weak:bool ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location ->
      Abstract_memory.bit -> Typed_memory.Make.t
    val set :
      oracle:Abstract_memory.oracle ->
      weak:bool ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location ->
      Typed_memory.Make.value -> Typed_memory.Make.t
    val overwrite :
      oracle:Abstract_memory.oracle ->
      weak:bool ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location ->
      Typed_memory.Make.t -> Typed_memory.Make.t
    val reinforce :
      oracle:Abstract_memory.oracle ->
      (Typed_memory.Make.value ->
       Typed_memory.Make.value Lattice_bounds.or_bottom) ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location ->
      Typed_memory.Make.t Lattice_bounds.or_bottom
    val is_included : Typed_memory.Make.t -> Typed_memory.Make.t -> bool
    val join :
      oracle:Abstract_memory.bioracle ->
      Typed_memory.Make.t -> Typed_memory.Make.t -> Typed_memory.Make.t
    val widen :
      oracle:Abstract_memory.bioracle ->
      (size:Abstract_memory.size ->
       Typed_memory.Make.value ->
       Typed_memory.Make.value -> Typed_memory.Make.value) ->
      Typed_memory.Make.t -> Typed_memory.Make.t -> Typed_memory.Make.t
    val incr_bound :
      oracle:Abstract_memory.oracle ->
      Cil_types.varinfo ->
      Integer.t option -> Typed_memory.Make.t -> Typed_memory.Make.t
    val pretty : Stdlib.Format.formatter -> Typed_memory.Make.t -> unit
    val segmentation_hint :
      oracle:Abstract_memory.oracle ->
      Typed_memory.Make.t ->
      Typed_memory.Make.location -> Cil_types.exp list -> Typed_memory.Make.t
  end