@kmruiz: what we definitely DO NOT want in Kotlin is dependent types and type-level programming.
So, if what you mean is an ability to write something like (in an imaginary Kolin/Scala mix):
Copy code
interface DepValue {
typealias V = out Any
val value: V
}
fun depFun(v: DepValue): v.V = v.value // NB type of depFun(v) depends on run-time value of v