PulseAbductiveDomain.Stack
Safe version of PulseBaseStack
val add : IR.Var.t -> PulseBaseStack.value -> 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 :
?pre_or_post:[ `Pre | `Post ] ->
IR.Var.t ->
t ->
PulseBaseStack.value option
val eval :
Pulselib.PulseBasicInterface.ValueHistory.t ->
IR.Var.t ->
t ->
t * Pulselib.PulseBasicInterface.ValueOrigin.t
return the value of the variable in the stack or create a fresh one if needed
val exists : (IR.Var.t -> PulseBaseStack.value -> bool) -> t -> bool
val fold_merge :
[ `Pre | `Post ] ->
t ->
t ->
init:'acc ->
f:
('acc ->
IR.Var.t ->
PulseBaseStack.value option ->
PulseBaseStack.value option ->
'acc * PulseBaseStack.value option) ->
'acc * PulseBaseStack.t