Scalc.Utilsval subst_expr : Ast.VarName.t -> Ast.expr -> Ast.expr -> Ast.exprsubst_expr var replacement within_expr substitutes replacement for var within within_expr.
val subst_block :
Ast.VarName.t ->
Ast.expr ->
Shared_ast.typ ->
Catala_utils.Pos.t ->
Ast.block ->
Ast.blocksubst_expr var replacement typ pos block substitutes replacement for var within the given block. If not possible (the variable appears in a variable-only position), the block is returned with an initialisation of var with replacement prepended
val find_block :
(Ast.stmt Catala_utils.Mark.pos -> bool) ->
Ast.block ->
Ast.stmt Catala_utils.Mark.pos optionRecurses into branchings, but not function bodies
val filter_map_block :
(Ast.stmt Catala_utils.Mark.pos -> 'a option) ->
Ast.block ->
'a listRecurses into branchings, but not function bodies
val get_vars : Ast.expr -> Ast.VarName.Set.t