/// <summary>
        ///     Builds block expression
        /// </summary>
        /// <param name="blockBuilder">localVariables => body</param>
        public static BlockExpression Block(Func <dynamic, IEnumerable <object> > blockBuilder)
        {
            var variables = new ParametersEBuilder(true);
            var body      = blockBuilder(variables);

            return(Expression.Block(variables, Exprs(body)));
        }
        /// <summary>
        ///     Builds lambda expression
        /// </summary>
        /// <param name="bodyBuilder">parameters => body</param>
        public static LambdaExpression Lambda(Func <dynamic, object> bodyBuilder)
        {
            var builder = new ParametersEBuilder(false);
            var body    = Expr(bodyBuilder(builder));

            return(Expression.Lambda(body, builder));
        }