public DekiScriptExpression Visit(DekiScriptXmlConstructor expr, DekiScriptOptimizerState state)
        {
            var           mode  = state.Mode;
            var           env   = state.Env;
            DekiScriptDom value = expr.Value.VisitWith(DekiScriptDomOptimizer.Instance, state);

            if (!value.IsDynamic)
            {
                // we can simply take the result to an expression
                return(new DekiScriptXml(DekiScriptDomEvaluation.Instance.Evaluate(value, mode, true, env)));
            }
            return(new DekiScriptXmlConstructor(value));
        }
        public DekiScriptLiteral Visit(DekiScriptXmlConstructor expr, DekiScriptEnv env)
        {
            XDoc xml = DekiScriptDomEvaluation.Instance.Evaluate(expr.Value, DekiScriptEvalMode.Evaluate, true, env);

            return(new DekiScriptXml(xml, env.IsSafeMode));
        }