public virtual void VisitListInitializerExpression <TCreateListExpression, TExpression>(
     IListInitializerExpression <TCreateListExpression, TExpression> listInitializerExpression)
     where TCreateListExpression : ICreateListExpression
     where TExpression : IExpression
 {
     Visit(listInitializerExpression);
 }
 public override void VisitListInitializerExpression <TCreateListExpression, TExpression>(
     IListInitializerExpression <TCreateListExpression, TExpression> listInitializerExpression)
 {
     Value = new Expression()
     {
         ListInitializerExpression = new ListInitializerExpressionFactory(listInitializerExpression).Value
     };
 }
 public static void VisitListInitializerExpressionChildren<TCreateListExpression, TExpression>(
     IListInitializerExpression<TCreateListExpression, TExpression> listInitializerExpression,
     IGenericExpressionVisitor visitor)
     where TCreateListExpression : ICreateListExpression
     where TExpression : IExpression
 {
     VisitIfNotNull(listInitializerExpression.CreateListExpression, visitor);
     foreach (IReadOnlyList<TExpression> initialValues in listInitializerExpression.InitialValues)
     {
         VisitCollection(initialValues, visitor);
     }
 }
 public override void VisitListInitializerExpression <TCreateListExpression, TExpression>(
     IListInitializerExpression <TCreateListExpression, TExpression> listInitializerExpression)
 {
     Steps.Add(new WriteExpression <TCreateListExpression>(listInitializerExpression.CreateListExpression));
     Steps.Add(new WriteIndentedNewLine());
     Steps.Add(new WriteStartBrace());
     Steps.Add(new IncrementIndent());
     Steps.AddListInitializerSteps(listInitializerExpression.InitialValues);
     Steps.Add(new DecrementIndent());
     Steps.Add(new WriteIndentedNewLine());
     Steps.Add(new WriteEndBrace());
 }