public override LightLambdaExpression ReduceAst(TotemAst instance, string name)
 {
     return Utils.LightLambda<LookupCompilationDelegate>(
         typeof(object),
         Utils.Convert(instance.ReduceWorker(), typeof(object)),
         name,
         TotemAst._arrayFuncParams
     );
 }
 public override LightLambdaExpression ReduceAst(TotemAst instance, string name)
 {
     return Utils.LightLambda<Func<FunctionCode, object>>(
             typeof(object),
             Expression.Block(
                 new[] { TotemAst._globalArray, TotemAst._globalContext },
                 Expression.Assign(TotemAst._globalArray, instance.GlobalArrayInstance),
                 Expression.Assign(TotemAst._globalContext, Expression.Constant(instance.ModuleContext.GlobalContext)),
                 Utils.Convert(instance.ReduceWorker(), typeof(object))
             ),
             name,
             new[] { TotemAst._functionCode }
         );
 }