// !LANGUAGE: +ContextReceivers typealias IterableClass = (C) -> Iterator context(IterableClass) fun C.iterator(any: Any?): Iterator = this@IterableClass.invoke(this) fun listOf(vararg items: T): List = null!! fun test() { val f: IterableClass, Int> = { it.listIterator() } with(f) { listOf(1, 2, 3).iterator(null) } listOf(1, 2, 3).iterator(null) }