functor (Config : Config) (Value : Value->
  sig
    type location = Abstract_offset.typed_offset
    type value = Value.t
    type t
    val hash : t -> int
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val top : t
    val zero : t
    val is_top : t -> bool
    val get : t -> location -> value
    val extract : t -> location -> t
    val erase : weak:bool -> t -> location -> bit -> t
    val set : weak:bool -> t -> location -> value -> t
    val overwrite : weak:bool -> t -> location -> t -> t
    val reinforce : (value -> value) -> t -> location -> t
    val is_included : t -> t -> bool
    val join : t -> t -> t
    val widen : (size:size -> value -> value -> value) -> t -> t -> t
    val pretty : Format.formatter -> t -> unit
  end