public override ISeq rest() { if (_oa != null) { if (_i + 1 < _oa.Length) return new ArraySeq(_a, _i + 1); } else { if (_i + 1 < _ilist.Count) return new ArraySeq(_a, _i + 1); } return null; }