sig
type t =
Assign of Action.lhs * Expr.t
| Emit of string
| StateMove of string * string * string
and lhs = { mutable l_desc : Action.lhs_desc; }
and lhs_desc =
LhsVar of string
| LhsArrInd of string * Expr.t
| LhsArrRange of string * Expr.t * Expr.t
| LhsRField of string * string
val mk_lhs : string -> Action.lhs
val lhs_name : Action.lhs -> string
val vars_of : Action.t -> Expr.VarSet.t * Expr.VarSet.t
val rename : (string -> string) -> Action.t -> Action.t
val subst : Eval.env -> Action.t -> Action.t
val string_of_lhs : Action.lhs -> string
val to_string : Action.t -> string
end