Iterable<T> rotate([int n = 1]) sync* { for (int i = 0; i < length; i++) { yield this[(i + n) % length]; } }