kotlin cycle
// https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/generate-sequence.html fun <T> Sequence<T>.cycle(): Sequence<T> = generateSequence(seed = this) { this }.flatten() fun <T> List<T>.cycle(): Sequence<T> = asSequence().cycle() listOf(1, 2, 3).cycle().take(5).toList()