partial void ReadConfiguration(LambdaExpressionConfiguration configuration) {
            Name = configuration.name;
            InternalType = Type.GetType(configuration.type);
            _parameters = new List<ParameterExpression>(configuration.arguments.Count);
          
            configuration.arguments
                         .ForEach(a => {
                             var parameter = a.Accept(this, Visitor).ReduceExtensions() as ParameterExpression;
                             var variable = new Variable(parameter);

                             VariablesStore.Add(variable.Expression.Name, variable);
                             _parameters.Add(parameter);
                         });

            Body = configuration.expression.Accept(this, Visitor);
        }
 protected virtual bool TryFind(string name, out Variable variableData) {
     return VariablesStore.TryGetValue(name, out variableData);
 }