#pragma warning disable CS1591

        public override IEnumerable <AssociativeNode> BuildOutputAst(List <AssociativeNode> inputAstNodes)
        {
            ClearErrorsAndWarnings();
            AssociativeNode resultList;

            if (IsPartiallyApplied)
            {
                resultList = AstFactory.BuildNullNode();
            }
            else
            {
                if (Selected.Any(v => v.IsTransient) || Selected.Count == 0)
                {   // Build from persistent selection
                    resultList = AstFactory.BuildFunctionCall(
                        new Func <object[], string[], bool, object[]>(DynamicArgumentDelegation.ExludeBySerializationValue),
                        new List <AssociativeNode>()
                    {
                        inputAstNodes[0],
                        AstFactory.BuildExprList(SelectedValue.Select(v => AstFactory.BuildStringNode(v) as AssociativeNode).ToList()),
                        AstFactory.BuildBooleanNode(false)
                    });
                }
                else
                {   // Build from live AST
                    resultList = AstFactory.BuildExprList(
                        Items.Where(c => !Selected.Contains(c)).Select(c => c.ToAstNode()).ToList());
                }
            }

            return(new AssociativeNode[]
            {
                AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), resultList)
            });
        }