something like that ``` inline fun <T : Compar...
# random
k
something like that
Copy code
inline fun <T : Comparable<T>> ClosedRange<T>.toIterable(crossinline succ: T.() -> T) = Iterable {
    object : AbstractIterator<T>() {
        init {
            setNext(start)
        }

        var value = start

        override fun computeNext()  {
            value = value.succ()
            if (value <= endInclusive) {
                setNext(value)
            } else {
                done()
            }
        }
    }
}