Module Absint.Bindings

include AbstractDomain.S
include AbstractDomain.NoJoin
include IStdlib.PrettyPrintable.PrintableType
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val empty : t
val add : IR.Var.t -> HilExp.AccessExpression.t -> t -> t
val exit_scope : IR.Var.t -> t -> t * IR.Var.t list

returns the new bindings as well as a list of variables that became dead

val resolve : t -> IR.Var.t -> HilExp.AccessExpression.t option
val fold : t -> init:'accum -> f:(IR.Var.t -> HilExp.AccessExpression.t -> 'accum -> 'accum) -> 'accum