public override int LastIndexOf(Func <TNode, bool> predicate) => SyntaxList.LastIndexOf(node => predicate(SyntaxWrapper.Wrap(node)));
public override TNode LastOrDefault() => SyntaxWrapper.Wrap(default(SyntaxNode));
public override TNode Last() => SyntaxWrapper.Wrap(SyntaxList.Last());
public override int LastIndexOf(TNode node) => SyntaxList.LastIndexOf(SyntaxWrapper.Unwrap(node));
public override TNode this[int index] => SyntaxWrapper.Wrap(SyntaxList[index]);
public override TNode First() => SyntaxWrapper.Wrap(SyntaxList.FirstOrDefault());
public override SeparatedSyntaxListWrapper <TNode> Replace(TNode nodeInList, TNode newNode) => new AutoWrapSeparatedSyntaxList <TSyntax>(syntaxList.Replace((TSyntax)SyntaxWrapper.Unwrap(nodeInList), (TSyntax)SyntaxWrapper.Unwrap(newNode)));
public override SeparatedSyntaxListWrapper <TNode> ReplaceRange(TNode nodeInList, IEnumerable <TNode> newNodes) => new AutoWrapSeparatedSyntaxList <TSyntax>(syntaxList.ReplaceRange((TSyntax)SyntaxWrapper.Unwrap(nodeInList), newNodes.Select(node => (TSyntax)SyntaxWrapper.Unwrap(node))));
public override TNode LastOrDefault() => SyntaxWrapper.Wrap(syntaxList.LastOrDefault());
public override SeparatedSyntaxListWrapper <TNode> Remove(TNode node) => new AutoWrapSeparatedSyntaxList <TSyntax>(syntaxList.Remove((TSyntax)SyntaxWrapper.Unwrap(node)));
public override SeparatedSyntaxListWrapper <TNode> InsertRange(int index, IEnumerable <TNode> nodes) => new AutoWrapSeparatedSyntaxList <TSyntax>(syntaxList.InsertRange(index, nodes.Select(node => (TSyntax)SyntaxWrapper.Unwrap(node))));
public override SeparatedSyntaxListWrapper <TNode> Insert(int index, TNode node) => new AutoWrapSeparatedSyntaxList <TSyntax>(syntaxList.Insert(index, (TSyntax)SyntaxWrapper.Unwrap(node)));
public override int IndexOf(TNode node) => syntaxList.IndexOf((TSyntax)SyntaxWrapper.Unwrap(node));
public override bool Contains(TNode node) => syntaxList.Contains(SyntaxWrapper.Unwrap(node));
public override TNode First() => SyntaxWrapper.Wrap(syntaxList.First());