There is a limitation in Kotlin's types system—it doesn't support Higher-Kinded Types (HKT). Without getting too much into type theory, an HKT is a type that declares other generic values as type parameters:
class MyClass<T>() //Valid Kotlin codeclass MyHigherKindedClass<K<T>>() //Not valid kotlin code
Lacking HKT is not great for Kotlin concerning functional programming, as many advanced functional constructs and patterns use them.