I have the following example:

```
function create_simple_function()
str = "v -> v[1]^2*v[3]^-1"
expr::Expr = parse(str)
f::Function = eval(expr)
return f
end
@code_warntype(create_simple_function())
Variables:
#self#::#create_simple_function
str::String
expr::Expr
f::F
Body:
begin
str::String = "v -> v[1]^2*v[3]^-1" # line 3:
SSAValue(0) = $(Expr(:invoke, LambdaInfo for #parse#311(::Bool, ::Function, ::String), :(Base.#parse#311), true, :(Main.parse), :(str)))
expr::Expr = (Base.convert)(Main.Expr,SSAValue(0))::Expr # line 4:
SSAValue(1) = (Core.eval)(Core.Main,expr::Expr)::Any
f::F = (Base.convert)(Main.Function,SSAValue(1))::F # line 5:
return f::F
end::F
```

My question is : why is `SSAValue(1)`

of type `Any`

?

In my working code I have thousands of functions to be created this way (with `1`

and `2`

replaced by `i`

s and `j`

s etc) and I found by profiling that this line is taking the most time.

Is this the way I should be creating those functions anyway?