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