public void CompleteValue(
            IFieldValueCompletionContext completionContext,
            Action <IFieldValueCompletionContext> nextHandler)
        {
            if (completionContext.Type.IsListType())
            {
                IType elementType      = completionContext.Type.ElementType();
                bool  isNonNullElement = elementType.IsNonNullType();
                elementType = elementType.InnerType();

                Action <object, int, List <object> > completeElement =
                    (element, index, list) =>
                {
                    nextHandler?.Invoke(completionContext.AsElementValueContext(
                                            completionContext.Path.Append(index), elementType,
                                            element, item => list.Add(item)));
                };

                CompleteList(completionContext, completeElement, isNonNullElement);
            }
            else
            {
                nextHandler?.Invoke(completionContext);
            }
        }