public static Expression <Predicate <TReturn> > FromLambda <TReturn>(ILambdaExpression lambdaExpression)
        {
            var visitor = new ExpressionTreeBuilderVisitor <Predicate <TReturn> >();

            var result = lambdaExpression.Accept(visitor, null) as Expression <Predicate <TReturn> >;

            return(result);
        }
        public static string ToNormalForm(this ILambdaExpression lambdaExpression)
        {
            var normalFormVisitor = new NormalFormVisitor();

            lambdaExpression.Accept(normalFormVisitor);

            return(normalFormVisitor.Result);
        }