Stmt.Helpersval temp_vars :
Expr.Typed.t list ->
Located.t list * Expr.Typed.t list * (unit -> unit)val ensure_var :
(Expr.Typed.t -> 'a -> Located.t) ->
Expr.Typed.t ->
'a ->
Located.tval internal_nrfunapp :
'a Expr.t Internal_fun.t ->
'a Expr.t list ->
'b ->
('a, 'b) tval contains_fn_kind :
('a Expr.t Fun_kind.t -> bool) ->
?init:bool ->
('a, 'b) t ->
boolval mk_for :
Expr.Typed.t ->
(Expr.Typed.t -> Located.t) ->
Location_span.t ->
Located.tval mk_nested_for :
Expr.Typed.t list ->
(Expr.Typed.t list -> Located.t) ->
Location_span.t ->
Located.tval mk_for_iteratee :
Expr.Typed.t ->
(Expr.Typed.t -> Located.t) ->
Expr.Typed.t ->
Location_span.t ->
Located.tval for_each :
(Expr.Typed.t -> Located.t) ->
Expr.Typed.t ->
Location_span.t ->
Located.tval for_scalar :
Expr.Typed.t SizedType.t ->
(Expr.Typed.t SizedType.t -> Expr.Typed.t -> Located.t) ->
Expr.Typed.t ->
Location_span.t ->
Located.tval for_scalar_inv :
Expr.Typed.t SizedType.t ->
(Expr.Typed.t SizedType.t -> Expr.Typed.t -> Located.t) ->
Expr.Typed.t ->
Location_span.t ->
Located.tval assign_indexed :
UnsizedType.t ->
'b Expr.t Pattern.lvalue ->
'a ->
('b Expr.t -> 'b Expr.t) ->
'b Expr.t ->
('b, 'a) tval get_lhs_name : 'a Pattern.lvalue -> stringThe name of the lhs. This adds "." and an index to tuple projections
val lvariable : string -> 'e Pattern.lvalueval lvalue_of_expr_opt : 'e Expr.t -> 'e Expr.t Pattern.lvalue optionval expr_of_lvalue : 'e Expr.t Pattern.lvalue -> meta:'e -> 'e Expr.tval map_lhs_variable :
f:(string -> string) ->
'e Pattern.lvalue ->
'e Pattern.lvalueval lhs_indices : 'e Pattern.lvalue -> 'e Index.t listval lhs_variable : 'e Pattern.lvalue -> stringThis gets the innermost name of the variable. It differs from get_lhs_name in that tuple projections do not add their indices here.
val lvalue_base_reference : 'e Pattern.lvalue -> 'e Pattern.lvalueReduce an lvalue down to its "base reference", which is a variable with maximum tuple indices after it. For example:
x[1,2][3] -> x
x.1[1,2].2[3].3 -> x.1
x.1.2[1,2][3].3 -> x.1.2