public object Eval(object form)
{
ScriptSource scriptSource = Engine.CreateScriptSourceFromString("<internal>");
Expression expr = Generator.Eval(GetLanguageContext(), form);
LambdaExpression ast = Expression.Lambda(expr);
ast = new GlobalLookupRewriter().RewriteLambda(ast);
ScriptCode code = new ScriptCode(ast, GetSourceUnit(scriptSource));
return code.Run();
}