private AbstractTerm GetArgumentIndex(int index) { AbstractTerm term = this; if (index == 0) return (AbstractTerm)_next ; for (int i = 0; i <= index; i++) { term = (AbstractTerm)term.Next; } return term; }