fn substitute_expr(expr: &Expr, env: &Environment) -> ExprExpand description
Walk an AST, replacing symbols with their values from the environment.
For function parameters (which have promise expressions stored by the call mechanism), substitute with the original unevaluated source expression. For other bindings, if bound to an RValue::Language, splice in the inner Expr. If bound to a literal value, convert to the appropriate Expr literal.