sig
  type chunk = Chunk.t
  type domain = Heap.set
  type t
  val create : unit -> t
  val copy : t -> t
  val merge : t -> t -> t * Passive.t * Passive.t
  val join : t -> t -> Passive.t
  val assigned : t -> t -> domain -> Lang.F.pred Bag.t
  val mem : t -> chunk -> bool
  val get : t -> chunk -> Lang.F.var
  val value : t -> chunk -> Lang.F.term
  val iter : (chunk -> Lang.F.var -> unit) -> t -> unit
  val iter2 :
    (chunk -> Lang.F.var option -> Lang.F.var option -> unit) ->
    t -> t -> unit
  val havoc : t -> domain -> t
  val havoc_chunk : t -> chunk -> t
  val havoc_any : call:bool -> t -> t
  val domain : t -> domain
  val union : domain -> domain -> domain
  val empty : domain
  val pretty : Format.formatter -> t -> unit
end