Module PulseAbductiveDomain.Stack

Safe version of PulseBaseStack

val add : IR.Var.t -> PulseBaseStack.value -> t -> t
val remove_vars : IR.Var.t list -> t -> t
val fold : ?pre_or_post:[ `Pre | `Post ] -> (IR.Var.t -> PulseBaseStack.value -> 'a -> 'a) -> t -> 'a -> 'a

pre_or_post defaults to `Post

val find_opt : IR.Var.t -> t -> PulseBaseStack.value option

return the value of the variable in the stack or create a fresh one if needed

val mem : IR.Var.t -> t -> bool
val exists : (IR.Var.t -> PulseBaseStack.value -> bool) -> t -> bool
val keys : t -> IR.Var.t list