sig
  type t
  val register_global_state : bool -> Domain_store.S.t Eval.or_bottom -> unit
  val register_initial_state :
    Value_types.callstack -> Domain_store.S.t -> unit
  val register_state_before_stmt :
    Value_types.callstack -> Cil_types.stmt -> Domain_store.S.t -> unit
  val register_state_after_stmt :
    Value_types.callstack -> Cil_types.stmt -> Domain_store.S.t -> unit
  val get_global_state : unit -> Domain_store.S.t Eval.or_bottom
  val get_initial_state :
    Cil_types.kernel_function -> Domain_store.S.t Eval.or_bottom
  val get_initial_state_by_callstack :
    Cil_types.kernel_function ->
    Domain_store.S.t Value_types.Callstack.Hashtbl.t Eval.or_top_or_bottom
  val get_stmt_state :
    after:bool -> Cil_types.stmt -> Domain_store.S.t Eval.or_bottom
  val get_stmt_state_by_callstack :
    after:bool ->
    Cil_types.stmt ->
    Domain_store.S.t Value_types.Callstack.Hashtbl.t Eval.or_top_or_bottom
  val mark_as_computed : unit -> unit
  val is_computed : unit -> bool
end