@override T operator [](int index) { final list = toDartList(); if(index < 0) return list[0]; if(index >= list.length) return list[index-list.length]; else return list[index]; }