public object SystemVectorRef(int index) { ISystemVector firstVec = ((ISystemVector)first); int firstSize = firstVec.SystemVectorSize; return((index < firstSize) ? firstVec.SystemVectorRef(index) : (rest == null) ? Fakeup(index) : rest.SystemVectorRef(index - firstSize) ); }