As Chris suggests, the problem is that Contractor
is using eval
to evaluate an expression, but then you are immediately calling contractor
within the same function.
To avoid the world-age problem you need to return to the “top level” before using a function created by eval
. Maybe we should indeed be using RuntimeGeneratedFunctions instead of eval.