/// <summary>
            /// Actually add the loop to the code and return everything!
            /// </summary>
            /// <param name="env"></param>
            /// <param name="context"></param>
            /// <param name="container"></param>
            /// <returns></returns>
            public Tuple <Expression, IDeclaredParameter> AddLoop(IGeneratedQueryCode env, ICodeContext context, CompositionContainer container)
            {
                // Create the index variable!
                var loopVariable = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int));
                var floop        = new Statements.StatementForLoop(loopVariable, _maxValue, _minValue);

                env.Add(floop);

                return(Tuple.Create(loopVariable as Expression, loopVariable as IDeclaredParameter));
            }
            /// <summary>
            /// Actually add the loop to the code and return everything!
            /// </summary>
            /// <param name="env"></param>
            /// <param name="context"></param>
            /// <param name="container"></param>
            /// <returns></returns>
            public Tuple<Expression, IDeclaredParameter> AddLoop(IGeneratedQueryCode env, ICodeContext context, CompositionContainer container)
            {
                // Create the index variable!
                var loopVariable = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int));
                var floop = new Statements.StatementForLoop(loopVariable, _maxValue, _minValue);
                env.Add(floop);

                return Tuple.Create(loopVariable as Expression, loopVariable as IDeclaredParameter);
            }