public static CompiledExpression Compile(Expression expression, NameResolver nameResolver)
        {
            if (expression == null)
            {
                throw new ArgumentNullException(nameof(expression));
            }
            var compiler = new LinqExpressionCompiler(nameResolver);
            var body     = compiler.Transform(expression);

            return(LX.Lambda <CompiledExpression>(body, compiler.Context).Compile());
        }
 ExpressionBody Splice(Expression <CompiledExpression> lambda)
 {
     return(ParameterReplacementVisitor.ReplaceParameters(lambda, Context));
 }