/// <summary>
        /// Creates a functional evaluation method
        /// </summary>
        /// <param name="argument">the string representing the method argument</param>
        /// <param name="resultType">the method result type</param>
        /// <param name="code">the source code of the method body</param>
        /// <returns>the create functional evaluation method delegate</returns>
        private static FunctionEvaluation CreateFunctional(string argument, Type resultType, string code)
        {
            CompilationResults compilationResults;
            FunctionEvaluation function = FunctionalBasis.CompileFunction <FunctionEvaluation>(code, argument, resultType, out compilationResults);

            if (compilationResults.HasErrors)
            {
                throw new InvalidProgramException(
                          $"Addition terminal evaluation failes: Error: {compilationResults.ErrorsExplanation}");
            }

            return(function);
        }
        /// <summary>
        /// Creates a terminal evaluation method
        /// </summary>
        /// <param name="arguments">the string[] representing the method arguments</param>
        /// <param name="resultType">the method result type</param>
        /// <param name="code">the source code of the method body</param>
        /// <returns>the created terminal evaluation method delegate</returns>
        private static TerminalEvaluation CreateTerminal(string[] arguments, Type resultType, string code)
        {
            CompilationResults compilationResults;
            TerminalEvaluation variable = FunctionalBasis.CompileTerminal <TerminalEvaluation>(code, arguments, resultType, out compilationResults);

            if (compilationResults.HasErrors)
            {
                throw new InvalidProgramException(
                          $"Variable terminal evaluation creation failes: Error: {compilationResults.ErrorsExplanation}");
            }

            return(variable);
        }