Aplicación de function parcial en Kotlin

Tengo problemas con la syntax para la aplicación de funciones parciales. El siguiente código funciona bien, y genera: two-three-four

 import kotlin.coroutines.experimental.* inline fun <T> Iterable<T>.forEachFrom(beg:Int, act:(T)->Unit) { var i=0; if (beg>=0) for (e in this) if (i++ >= beg) act(e) } // sample function I am testing; please don't change this! fun main(a:Array<String>) { val l = listOf("zero", "one", "two", "three", "four") fun test() = buildSequence { l.forEachFrom(2) { yield(it) } }.joinToString("-") println(test()) } 

Me gustaría encapsular mi test() , por lo que se llama como: test(l.forEachFrom(2)) Sin embargo, parece que no puedo get los types / syntax correctos. ¿Cómo volvería a escribir la definición de la function test() para que esto sea posible?