sig
  val index : Memory.lval -> Lang.F.term -> Memory.lval
  val field : Memory.lval -> Cil_types.fieldinfo -> Memory.lval
  val equal : Memory.lval -> Memory.lval -> bool
  type 'a model
  type state
  val create :
    (module Memory.Model with type Sigma.t = 'a) -> 'Mstate.model
  val state : 'Mstate.model -> '-> Mstate.state
  val lookup : Mstate.state -> Lang.F.term -> Memory.mval
  val apply : (Lang.F.term -> Lang.F.term) -> Mstate.state -> Mstate.state
  val iter : (Memory.mval -> Lang.F.term -> unit) -> Mstate.state -> unit
  val updates :
    Mstate.state Memory.sequence -> Lang.F.Vars.t -> Memory.update Bag.t
end