# scoping – How to define a function in a module via Evaluate

I'm trying to define a function in a module as follows

``````test1[a_] : = Module[{sol1, g1, y},
sol1 = Reduce[a + x^2 == y, x];
g1[y_] : = Evaluate @ sol1[[1, -1]];
Impression[Definition[g1]];
g1[33]
]
``````

This gives the exit

``````Attributes[g1\$28580]= {Temporary}

g1$$28,580[Y[Y[y[y$$_]: = - Sqrt[-3+y[-3+y[-3+y[-3+y$$28580]-Sqrt[-3+y[-3+y[-3+y[-3+y$$28588]
``````

As you can see, it does not work. the `there` in the body of the function is `there$$28,580$$`, but no `y \$`. Is there a way to make this work?